web-dev-qa-db-ja.com

`npm build`はpackage.jsonの" build "という名前のスクリプトを実行しません

新しいモジュールでは、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"
},

その名前のファイルは作成しません。

122
mikemaccana

残念ながら、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アドオンを構築するために使用されます。通常は自動的に行われるため、ドキュメント化されていませんが、興味がある場合は ソースコードはこちら です。

213
jayphelps

package.jsonで「build」という名前のスクリプトは、特別なものではありません。実行するための唯一の方法は以下を呼び出すことです:

npm run-script build

npmによって自動的に呼び出される名前があります ですが、「build」はそれらの1つではありません。完全なリストは次のとおりです。

  • prepublishpublishpostpublish
  • preinstallinstallpostinstall
  • preuninstalluninstallpostuninstall
  • preversionversionpostversion
  • pretesttestposttest
  • prestopstoppoststop
  • prestartstartpoststart
  • prerestartrestartpostrestart
  • カスタム変数名のpreCUSTOMおよびpostCUSTOM
15
Flimm

OK、それ自身でビルドを実行するには、次を使用します:

npm run-script build
3
mikemaccana

npm run buildが何も印刷しないという問題がありました。最終的にnpm run build --verboseを使用して必要な出力を取得しました。

3
Or Gal

Npmビルド 期待

ルートにpackage.jsonファイルを含むフォルダー

Package.jsonで npm scripts を使用してみてください(古典的なnpm startのように)

2
Kangcor