いくつかのプロジェクトがあり、node main.js
/make test
などを使用して実行します。必要なのは、スクリプトからこのディレクトリを取得することです。からだけでなくmain.js
、任意のサブモジュールからも。path
プラグインとを試してみまし__directory
たが、現在のファイルのパス(サブモジュールなど)を取得します。私も試しrequire('path').dirname(require.main.filename)
ましたが、実行するmake test
と、プロジェクトディレクトリの代わりにmochadirnameが表示されます。これを解決する最も簡単な方法は何ですか?
14356 次
5 に答える
57
process.cwd()
それを提供します。
于 2013-03-01T02:10:58.797 に答える
6
__dirname
ファイルが存在するパスを提供します。
于 2013-03-01T02:11:08.090 に答える
0
require.cache
ロードされたすべてのモジュールとそれに関連するインポートされた値、親モジュール、子モジュール、絶対ファイルパスなどを格納します。
各モジュールは、そのファイルパスをキャッシュキーとして使用してキャッシュオブジェクトに割り当てられていると思いますが、念のために、それを再確認することをお勧めします。
その場合でも、Object.keys(require.cache)
すべてのモジュールのファイルパスの配列を提供するのと同じくらい簡単なものです。次に、必要に応じて各パスを解析し、各モジュールパスから探しているディレクトリ情報を取得します。
于 2017-04-27T21:23:35.587 に答える
0
これは、コンソールから相対パスで提供されるファイルにアクセスするための便利な関数です。
function getPath(filename) {
return (filename[0] != '/' ? process.cwd() + '/' : "") + filename
}
于 2020-02-03T18:52:14.997 に答える
0
JSモジュールではなく実行可能ファイルへのパスが必要な場合は、1つのオプションもあります。使用できます:
process.argv[1] // 0 is path to node
__dirname
使用することも__filename
できますが、これらはモジュールへのパスであるため、これをファイルに入れるrequire
と、そのファイルへのパスが表示されます。
于 2020-12-11T21:15:28.957 に答える