2016-09-15 3 views
0

'最初に呼び出されたモジュール'があるディレクトリへのパスを取得する方法は?例えばノードコマンドで最初に呼び出された/開始されたモジュールへのパスを取得します

は、我々はbashのファイルが/bin/フォルダにstartnode.shと呼ばれている

index.jsで今
node ~/path/to/file/index.js 

我々は次のように他のファイルを必要と複雑なコードを持っています。今、私たちはしているなど

var myMoudle = require("./module.js"); 

ランダムなフォルダ:/qpa/dir/その後、bashファイルでノードプロセスを開始します:

startnode 

とは、私たちのmodule.jsに、私たちは作業ディレクトリを取得するつもり:

console.log(process.cwd()); 

驚きを! process.cwd()~/path/to/file/の代わりに/qpa/dir/を返す

なぜですか?

ノードプロセスが始まるディレクトリが必要です。最初にモジュールと呼ばれるディレクトリです。

+0

申し訳ありません申し訳ありませんが、私は初めて読んだときに必要なものを正しく理解していませんでした。 –

答えて

0

使用のenv変数:bin.shで

test 
├── bin.sh 
└── test 
    └── hello.js 

:hello.jsで

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" node BASE_PATH/test/test/hello.js 

console.log(__dirname); // BASE_PATH/test/test 
console.log(process.env.DIR); // BASE_PATH/test 
console.log(process.cwd()); // BASE_PATH 

注:

構造を以下の点を考慮BASE_PATHを置き換える必要があります。あなたのパス(〜/パス/ to/file /)

関連する問題