2012-03-26 35 views

答えて

284

process.cwd()はつまり、あなたがnodeコマンドを起動したディレクトリ、

を現在の作業ディレクトリを返します。

__dirnameあたりノードJS doc process.cwd()

cwdグローバルオブジェクトprocess方法であるとして、JavaScriptソースコードファイル

+4

を必要とするnode main.jsを実行すると、この平均値をいたと'process.cwd()'は 'require()'を除くすべてのケースで '.'と同義ですか? –

+6

@AlexanderGonchiy、 '.'は' process.cwd() '(これは同義語)に相対的ですが、現在実行中のファイルに対して相対的に動作する' require() 'は例外です。詳細については、[ここ](http://stackoverflow.com/a/16730379/927631)を参照してください。 – Dwelle

14

を含むディレクトリのディレクトリ名を返す現在の文字列の値を返しますNode.jsプロセスの作業ディレクトリ。文字列値として現在のスクリプトのノードJS doc __dirname

ディレクトリ名あたりとして

。 __dirnameは実際にはグローバルではなく、むしろ各モジュールに対してローカルです。

たちはmain.jsファイルがC:/Project/main.js 内に常駐持っており、これらの値は、以下のフォルダ構造

Project 
├── main.js 
└──lib 
    └── script.js 

または単に同じファイルを返すnode main.jsの両方を実行していると仮定し、私は例を挙げて説明しましょうmain.js

console.log(process.cwd()) 
// C:\Project 
console.log(__dirname) 
// C:\Project 
console.log(__dirname===process.cwd()) 
// true 

我々はC:/Project/lib/script.jsすなわち、別のファイルのプロジェクトのサブディレクトリ内script.jsファイルを持っているとscript.js

main.js

require('./assets/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 
関連する問題