node_modules フォルダーの場所を変更する方法はありますか?
例えば:
- dir1
- dir2
- node_modules
に:
- dir1
- dir2
- node_modules
node_modules
以下は、デフォルトでフォルダーを検索するコードです
Module.prototype.load = function(filename) {
debug('load ' + JSON.stringify(filename) +
' for module ' + JSON.stringify(this.id));
assert(!this.loaded);
this.filename = filename;
this.paths = Module._nodeModulePaths(path.dirname(filename));
var extension = path.extname(filename) || '.js';
if (!Module._extensions[extension]) extension = '.js';
Module._extensions[extension](this, filename);
this.loaded = true;
};
したがって、以下は正確な検索パターンです。
Node.JSは、指定されたモジュールがコア モジュールであるかどうかを確認します。(例: http
、fs
など) モジュールのロードでは常に優先されます。
指定されたモジュールがコア モジュール (例: 、など) でない場合http
、fs
Node.js は、という名前のディレクトリの検索を開始しますnode_modules
。
現在のディレクトリ ( Node.JSで現在実行中のファイルに関連する) で開始し、フォルダー階層を上っていき、各レベルで node_modules フォルダーをチェックします。Node.JSがフォルダーを見つけるとnode_modules
、指定されたモジュールを (.js) JavaScript ファイルまたは名前付きサブディレクトリとしてロードしようとします。指定されたサブディレクトリが見つかった場合は、さまざまな方法でファイルをロードしようとします。たとえば、
モジュール「utils」とそのディレクトリ (.js ファイルではない) をロードするリクエストを行うと、
Node.JSは次の方法で階層ディレクトリnode_modules
を検索します。utils
./node_modules/utils.js
./node_modules/utils/index.js
./node_modules/utils/package.json
上記の手順でNode.JSがまだファイルを見つけられない場合、Node.js は環境変数からディレクトリ パスを調べ始めNODE_PATH
ます。上記のすべての手順で見つかりませんでした。スタック トレースをstderに出力します
。:詳細情報: リンクはこちらです。周期的な require()についても非常によく説明されています。Error:
Cannot find module 'yourfile'
nodevars.bat
実際、最後の行が次のファイルを編集することもできます。
if "%CD%\"=="%~dp0" cd /d "%HOMEDRIVE%%HOMEPATH%"
ユーザーのホーム ディレクトリを確認する代わりに、独自のディレクトリを指定できます。
%HOMEDRIVE%%HOMEPATH%
node-modules-location が自動的に処理されるようにします。