てすと

たかろぐ

自分のログを刻みます。

腹痛+気持ち悪い+眠気

朝目が覚めると、いきなり腹痛+気持ち悪さ+眠気の3連コンボを食らわせられて大変だった。 午後には治ったけど、アレはなんだったんだろう...(苦笑)

体調管理、大事

ということで最近、JavaScriptの勉強ということで問題を解いたりもしています。

今日はnpmのモジュールロードについての学び。

nodeを使って開発する時、npmyarnで外部ライブラリを管理すると思います。 その時インストールされたライブラリはnode_modulesというディレクトリ内に保管されるというのは知られた話で、 実際にモジュールをロードしたい時は、require文やimport文を使って読み込みます。

僕は、その時の内部動作を詳しく知らずに使っていたので、今日はその内部動作を知ることができたのが今日の収穫です。

参考として、日本語ページと公式ページの両方載せておきます。

詳細は参考リンクを見て欲しいのですが、node_modules/以下にrequire等で指定したモジュール名が見つかった時以下のように読み込みを行うそうです。

  1. モジュールを展開してpackage.jsonを探す。見つかればそのmainプロパティ先のファイルを読み込んで返す
  2. package.jsonが無ければindex.jsを探す。見つかればそれを読み込んで返す
  3. index.jsが無ければindex.nodeを探す。見つかればそれを読み込んで返す
  4. index.nodeも無ければエラーを吐く

という流れらしいですね。 (漠然とやってたら、なかなか知る機会無さそう...)