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


138

新しいモジュールの場合、npm buildgulp / Grunt /その他の専用ビルドツールなしで使用しようとしています。

"scripts": {
  "build": "node build.js"
},

私のbuild.jsは単純です

console.log('Hello')

ただし、実行中

npm build

何も印刷せずに終了し、ステータスは0です。

ランニング:

npm install

また、すべての通常のことを行いますが、build.jsも実行しません。

npmでビルドスクリプトを実行するにはどうすればよいですか?

編集:単純なbashコマンドでも機能しないようです。

"scripts": {
    "build": "touch TESTFILE"
},

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


回避策:install代わりに使用してください。
ZAZ

これは、基本的にNPMの大きな直感的ではない煩わしさであり、私がYarnを使い続けている理由の1つです。ヤーンを使用すると、パラメーターとして任意のカスタムスクリプトを実行できます。つまり、ヤーンストーリーブックがストーリーブックスクリプトを実行します。NPMでは、npm run storybookを実行する必要があります。さらに、npmを介してパラメーターを渡したい場合は、その前に、つまり、yarn storybook --ciとnpm run storybook---ciを比較する必要があります。それは私にとっては非常に簡単です。
Emobe

回答:


243

残念ながら、ドキュメントに記載されているようnpm buildすでに内部コマンドです:

これは、npm linkおよびnpm installによって呼び出されるplumbコマンドです。 通常、直接呼び出すことはできません。

このコマンドはすでに存在しているため、常にを覆います"build": "node build.js"

独自のスクリプトを実行する完全修飾された方法は、with run-scriptまたはそのエイリアスrunです:

$ npm run build

npm startその他は省略形ですが、既存のnpmコマンドがそれをシャドウしない場合のオプションにすぎませんnpm build


後世のために(他の人が述べたように)npm build、npmはnode-gypを使用してネイティブC / C ++ノードアドオンを構築するために使用されます。通常は自動的に行われるため、十分に文書化されていませんが、興味がある場合は、ソースコードがここにあります


15
それで、何を npm buildますか?私が見る限り、すべてのファイルは完全に変更されていません...
qntm

2
一部のパッケージにはビルドプロセスが必要です。あなたが実行npm installしていて、npmがC / C ++バインディングまたは一般的にsthを実行するためにnode-gypを必要とするパッケージを見つけたとき、それは開始しnpm buildます。npm build単独で実行するだけで、これらのパッケージを再構築できます。
JakubMiziołek2016年

4
内部コマンドの名前をに変更し_buildnpm build次のようなショートカットにする必要がnpm startありますnpm test
Pawel

1
npm buildスクリプトが呼び出されないことと、パッケージのコンパイル済みコンポーネントをビルドするために使用されることを理解しています。それがどのように行われるかはまだわかりません:どのファイルを探すのか、など?
aaaidan 2017

1
私はパッケージを自分で書くことだった場合、まだ埋めるために何をすべきか、知っていいだろうnpm build...という意味で
フランクNocke

20

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

npm run-script build

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

  • prepublishpublishpostpublish
  • preinstallinstallpostinstall
  • preuninstalluninstallpostuninstall
  • preversionversionpostversion
  • pretesttestposttest
  • prestopstoppoststop
  • prestartstartpoststart
  • prerestartrestartpostrestart
  • preCUSTOMそして、postCUSTOMカスタムスクリプト名の。


3

npm run build何も印刷しないと困っていました。npm run build --verbose必要な出力を取得するために使用することになりました


2

Npmビルド

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

従来のnpm startのように、package.jsonでnpmスクリプトを使用してみてください


これが意味することは、それnpm build .が機能するはずであり、私の場合、npmは、期待どおりに「package.json」内の「build」スクリプトを実行します。
Erhhung
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.