npm script の実行順のメモ

2019-02-12 追記

この情報は古くなっている / 間違っている可能性があるので参照しないでください.

最新の情報は https://docs.npmjs.com/misc/scripts とかからどうぞ.


npm@4.5 時点.

適当に書いていると (主に prepublish/prepare/prepublishOnly あたりで) 落とし穴に嵌ることがありそうなので.

npm install (引数なし)

  1. preinstall
  2. install
  3. postinstall
  4. prepublish
  5. prepare

prepublish は npm@5 以降では prepublishOnly と同じ動作になり, publish の前にのみ実行されるようになるので注意.

npm install <pkg> (引数あり)

インストール先ではなく, インストールされるパッケージのスクリプトについてです.

  1. preinstall
  2. install
  3. postinstall

こちらは prepublish や prepare は実行されない (まあ当然か).

npm pack

あまり使わないけれど publish せず tarball を作るだけのコマンド.

  1. prepublish
  2. prepare

tarball が作成されるのはこれらが実行された後.

こちらも npm@5 以降では prepublish は実行されなくなるはず.

npm publish

  1. prepublish
  2. prepare
  3. (ここで tarball が作成される)
  4. prepublishOnly
  5. publish
  6. postpublish

prepublishOnly は tarball 作成後に実行されるので, ここでファイルを生成したりしても publish されるものには含まれないので注意. ビルドなどは必ず prepare で行うようにする.

やはり npm@5 では prepublish は prepare の前ではなく prepublishOnly の位置に移動する.