ローカルにインストールされたパッケージのbinスクリプトを使用できないというnpmのドキュメントを読んでいます。ローカルにインストールされたnpmパッケージのbinスクリプトを利用する方法
ローカルにインストールすると、gulp
はbinコマンドとしてどのように起動できますか? ローカルにインストールしたときに何ができるのですか?私はgulp
package.json
とbinスクリプトを見直しましたが、何の答えも見つかりませんでした。
ローカルにインストールされたパッケージのbinスクリプトを使用できないというnpmのドキュメントを読んでいます。ローカルにインストールされたnpmパッケージのbinスクリプトを利用する方法
ローカルにインストールすると、gulp
はbinコマンドとしてどのように起動できますか? ローカルにインストールしたときに何ができるのですか?私はgulp
package.json
とbinスクリプトを見直しましたが、何の答えも見つかりませんでした。
これを使用するには、ローカルのファイル名にコマンド名のマップであるあなたの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"
それで、パッケージ(gulpを例として)をローカルにインストールすることはできず、グローバルインストールをしなくてもbinコマンドを実行できますか? 原因Gulpをローカルにインストールしました.Gulpをグローバルにインストールしなくても 'gulp default' binコマンドを実行できます。 問題はおそらく私のbash_profileにあります... Gulpを実行する理由はわかりませんが、グローバルなインストールをしていないカスタムbinコマンドを実行することはできません。 – Jordan
いいえ、あなたはそれを行うべきではありません。 'npm list -g'を実行すると、どのパッケージがグローバルにインストールされているかを知ることができ、バイナリがどこにあるのかを知ることができます。 – Cyril
私が確認した問題は、私のbash_profileからでした...あなたの時間のために多くのおかげで! – Jordan
答えとしてあなたの問題が解決されている場合、質問をマークしてください。それ以外の場合は、まだ動作していないことをお知らせください。 – Cyril