2017-02-28 3 views
1

NPMは./node_modules/.binパスを追加するので、package.jsonによってインストールされたすべてのCLIツールがPATHで利用可能であると仮定できる単純なビルドツールとしてNPMを使用してきました。

しかし、NPMが実際にnodeという実行可能ファイルをPATHに入れておけば、私はちょっと気になっていました。 ./node_modules/.binのすべてのスクリプトは、Unix上のラッパースクリプトを見つけるためにそこにあるnodeに依存していますが、私はのWindowsでという魔法があるかもしれないと思っていました。おそらく、彼らは自分自身のいくつかの他の魔法を使うでしょう。か何か。問題ではない、本当に、私は主張することができるようにしたい:

node実行ファイルがNPMによってNPMスクリプトに与えられたPATHに常にですか?すべてのプラットフォームでですか? NPMと同じノードが常に稼働していますか?

これは、ほとんど尋ねられるのはあまりにも基本的に思えるかもしれませんが、残念ながらより安全です。

答えて

1

注:いない決定的な答えが、コメントのためにあまりにも長い

あなたがスクリプトのために設定されているdefault values上のドキュメントを見れば:

NPMは、いくつかのデフォルトになりますスクリプトの値はパッケージの内容に基づいています。

"スタート": "ノードserver.js":

あなたのパッケージのルートにserver.jsファイルがある場合、NPM がノードserver.jsにstartコマンドをデフォルト設定されます。

これは、あなたの質問に明確な答えはありませんが、NPMは、定義されたnpm startはありません場合は、デフォルトとしてnodeを使用しています。これは明らかなインジケータです。npmは、すべての状況下に存在するノードに依存しています。

+0

これはかなり良い表示です:) – oligofren

1

Windowsでは、npmがPATHまたはnpmと同じフォルダにあることがノードに要求されているという前提を安全に行うことができます。これはnpm.cmd(npmと入力したときに呼び出されるスクリプト)からのものです。

関連する問題