経緯
minimistを使いたかったが、公式はCommonJSのrequire
の書き方だったので
ESモジュールでの書き方を調べた
結論
minimistをESモジュールで読み込むには
import minimistModule from "minimist";
とすればminimistを好きな名前(minimistModule)で使える
詳細
モジュールとは
1つのjsファイルに全部書くと大変なので、機能ごとにjsファイルをわけて書き、
それを読み込んでメインのjsファイルで使う
その分割したjsファイルをモジュールとしている
モジュールの中身は変数や関数などを定義する
1つのファイルの中に複数定義しておくことも可能
読み込む側と読み込まれる側
読み込む側はメインファイル
読み込まれる側はモジュール(機能ごとにわけたjsファイル)
ざっくり書くとこうなる
メインファイル側 | モジュール側 | |
---|---|---|
CommonJS | require | module.exports |
ESモジュール | import | export |
import,export
import,exportには「名前つき」と「デフォルト」の2種類がそれぞれある
名前つき
モジュールごとに複数の機能(関数や変数など)をexportでき、その中から必要なものを指定してimportすることができる
名前つきexport
export const name = "foo"; export const hello = () => console.log("Hello");
または
const name = "foo"; const hello = () => console.log("Hello"); export { name, hello };
名前つきimport
import { name, hello } from "パス名";
別名をつける
定義した機能名(変数名、関数名など)を別名でexport,importしたいときはas 別名
のように書く
後述するデフォルトでも別名はつけられる
export側で別名をつける
export { name as fooName, hello };
import側で別名をつける
import { name, hello as displayHello} from "パス名";
全てをimport
import * as 指定の名前 from "パス名";
とすると指定した名前にモジュールの全てのexportを取得できる
指定の名前.機能名
でその機能を使える
デフォルト
モジュールに1つの機能がありそれをデフォルトとして設定している
デフォルトexport
export default function () { console.log("Hello!"); }
または
const hello = () => { console.log("Hello!"); } export default hello;
デフォルトimport
import displayHello from "パス名"; console.log(displayHello); // exportしたhelloモジュールをdisplayHello(好きな名前)として使用
注意
名前つきimportは、指定する機能が1つでも
{ }
をつけることデフォルトimportなら
{ }
いらない 別名をつけるときは{ }
が必要名前つきexportで
as default
とするとデフォルトimportできるが、その際default as
で別名をつけてimportする必要があるパス名は 同じディレクトリ内でも
./
をつけることnpmでインストールしたモジュール(node_modules内のモジュール)は、パス名の部分をモジュール名にするだけで参照可能
minimist
minimistのコードも見てみたが難しく断念
ただデフォルトで機能が設定されているようだったので、単純にデフォルトimportでできた
おわりに
完全未経験から現在フィヨルドブートキャンプで学習中。
自分で気になったところの記録(メモ)です。
間違い等あればご指摘いただければ幸いです。