新しいモジュールでは、gulp/Grunt /その他の特殊なビルドツールなしで npm build
を使用しようとしています。
"scripts": {
"build": "node build.js"
},
私のbuild.jsは単純です
console.log('Hello')
ただし、実行中
npm build
ステータス0で、何も印刷せずに終了します。
ランニング:
npm install
また、通常のすべてを行いますが、build.jsも実行しません。
npmにビルドスクリプトを実行させるにはどうすればよいですか?
編集:単純なbashコマンドでさえ機能しないようです。例えば
"scripts": {
"build": "touch TESTFILE"
},
その名前のファイルは作成しません。
残念ながら、npm build
は既にinternalコマンドです。これについては ドキュメントで :
これは、npm linkおよびnpm installによって呼び出される配管コマンドです。 通常、直接呼び出すべきではありません。
このコマンドは既に存在するため、常に"build": "node build.js"
を覆います。
独自のスクリプトを実行する完全修飾方法は、 run-script
またはそのエイリアスrun
を使用することです。
$ npm run build
npm start
およびその他は省略形ですが、npm build
のように既存のnpmコマンドがシャドウしない場合のオプションにすぎません。
後世のために(他の人が述べたように)npm build
は、npmによって node-gyp を使用してネイティブC/C++ Nodeアドオンを構築するために使用されます。通常は自動的に行われるため、ドキュメント化されていませんが、興味がある場合は ソースコードはこちら です。
package.json
で「build」という名前のスクリプトは、特別なものではありません。実行するための唯一の方法は以下を呼び出すことです:
npm run-script build
npmによって自動的に呼び出される名前があります ですが、「build」はそれらの1つではありません。完全なリストは次のとおりです。
prepublish
、publish
、postpublish
preinstall
、install
、postinstall
preuninstall
、uninstall
、postuninstall
preversion
、version
、postversion
pretest
、test
、posttest
prestop
、stop
、poststop
prestart
、start
、poststart
prerestart
、restart
、postrestart
preCUSTOM
およびpostCUSTOM
。OK、それ自身でビルドを実行するには、次を使用します:
npm run-script build
npm run build
が何も印刷しないという問題がありました。最終的にnpm run build --verbose
を使用して必要な出力を取得しました。