回答:
process.cwd() 現在の作業ディレクトリを返します。
つまり、nodeコマンドを呼び出したディレクトリ。
__dirname JavaScriptソースコードファイルを含むディレクトリのディレクトリ名を返します
ノードのjs ドキュメントに従って
process.cwd()
cwdグローバルオブジェクトのメソッドでprocess、Node.jsプロセスの現在の作業ディレクトリである文字列値を返します。
ノードのjs ドキュメントに従って
__dirname
文字列値としての現在のスクリプトのディレクトリ名。__dirnameは実際にはグローバルではなく、各モジュールに対してローカルです。
例で説明しましょう
main.js内部にファイルが存在し、これらの両方の値C:/Project/main.js
を実行するnode main.jsと同じファイルが返されると仮定します
または単に次のフォルダ構造で
Project
├── main.js
└──lib
└── script.js
main.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname===process.cwd())
// true
私たちは別のファイルがあるとしscript.jsたプロジェクトすなわちのサブディレクトリ内のファイルC:/Project/lib/script.jsと実行node main.jsが必要ですscript.js
main.js
require('./lib/script.js')
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname===process.cwd())
// true
script.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project\lib
console.log(__dirname===process.cwd())
// false
$ find proj
proj
proj/src
proj/src/index.js
$ cat proj/src/index.js
console.log("process.cwd() = " + process.cwd());
console.log("__dirname = " + __dirname);
$ cd proj; node src/index.js
process.cwd() = /tmp/proj
__dirname = /tmp/proj/src
process.cwd()が.を除くすべてのケースと同義であることを意味しrequire()ますか?