フロントサイドエンジニアという選択肢

HTMLコーダー → ECサイト運営 → システムエンジニア という経歴の著者がフロントサイトエンジニアという職業に今後の活路を見出し、その道に進むために取得した技術を貯めておくブログ

(Node.js)モジュール呼び出し時のパスについて

Node.jsで自作モジュールを呼び出す場合は、パスが必要だったりする場合とそうでない場合がありますが、その違いについてメモしておきます。

モジュール名(ファイル名)のみで呼び出す方法

コマンドプロンプトやスタートメニューからREPLを起動して、moduleと入力すると、moduleオブジェクトの情報が表示され、その一番下にあるpathsというプロパティに、require時に検索するフォルダの一覧が表示されます。このフォルダ内にモジュールファイル(js)を保存しておくと、モジュール名(ファイル名)のみで呼び出すことが可能になります。

ちなみに、全てのパスがnode_modulesというフォルダになっていますが、コマンドプロンプトからREPLを起動した時などは、フォルダ実在しない場合があります。その場合は同名のフォルダを自分で追加してあげます。

パスが必要になる場合

node_modulesフォルダに入っていないjsファイルは、パス(相対絶対どちらも可)が必要になります。

検索ルール

package.jsonやjsファイル内でrequire関数を使用した場合は、同階層にあるnode_modulesファイルを検索します。REPL内でrequire関数を使用した場合は、REPLを起動したデレクトリにあるnode_modulesファイルを検索します。
どちらの場合も、同階層にnode_modulesファイルが存在しなければ、上の階層で同名ファイルを検索します。

ちなみに、requier関数の引数にフォルダのパスを渡すと、同じルールでpackage.jsonを探してくれます。

モジュールが存在するかチェックする

パスが正しいかどうかなど、REPLからチェックしたい場合はrequire.resolveメソッドで確認できます。モジュールが存在する場合はパスが返ってきます。