読者です 読者をやめる 読者になる 読者になる

npm script の実行順のメモ

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 の位置に移動する.