2016-08-26 6 views
0

ローカルにインストールされたパッケージのbinスクリプトを使用できないというnpmのドキュメントを読んでいます。ローカルにインストールされたnpmパッケージのbinスクリプトを利用する方法

ローカルにインストールすると、gulpはbinコマンドとしてどのように起動できますか? ローカルにインストールしたときに何ができるのですか?私はgulppackage.jsonとbinスクリプトを見直しましたが、何の答えも見つかりませんでした。

+0

答えとしてあなたの問題が解決されている場合、質問をマークしてください。それ以外の場合は、まだ動作していないことをお知らせください。 – Cyril

答えて

0

From NPMJS documentation:

これを使用するには、ローカルのファイル名にコマンド名のマップであるあなたのpackage.jsonにビンフィールドを提供します。インストール時に、npmはそのファイルをグローバルインストールの場合は/ binに、ローカルインストールの場合は./node_modules/.bin/にシンボリックリンクします。

だから、あなたのローカルにインストールされたパッケージのバイナリは、あなたが直接バイナリを起動したい場合、これがあるこの

./bin/node_modules/.bin/the_binary 

のように実行可能になります。または、シェルの既存のPATHに加えてthe scripts part of the documentation:

に指定されているように、NPMの実行は、スクリプトに提供PATHにnode_modules/.binファイルを追加します。

したがって、あなたは、単に

scripts: { 
    "build": "the_binary" 
} 

のようなラッパースクリプトを書いて、[email protected]のように、この

npm run build 

ボーナス

のようなスクリプトを呼び出すことができます.0では、scrを実行するときにカスタム引数を使用できますipts。特別なオプション - は、オプションの終わりを区切るためにgetoptによって使用されます。 NPMは後にすべての引数を渡します - 直接あなたのスクリプトに:

npm run test -- --grep="pattern" 
+0

それで、パッケージ(gulpを例として)をローカルにインストールすることはできず、グローバルインストールをしなくてもbinコマンドを実行できますか? 原因Gulpをローカルにインストールしました.Gulpをグローバルにインストールしなくても 'gulp default' binコマンドを実行できます。 問題はおそらく私のbash_profileにあります... Gulpを実行する理由はわかりませんが、グローバルなインストールをしていないカスタムbinコマンドを実行することはできません。 – Jordan

+0

いいえ、あなたはそれを行うべきではありません。 'npm list -g'を実行すると、どのパッケージがグローバルにインストールされているかを知ることができ、バイナリがどこにあるのかを知ることができます。 – Cyril

+0

私が確認した問題は、私のbash_profileからでした...あなたの時間のために多くのおかげで! – Jordan

関連する問題