2019-02-12 追記
この情報は古くなっている / 間違っている可能性があるので参照しないでください.
最新の情報は https://docs.npmjs.com/misc/scripts とかからどうぞ.
npm@4.5 時点.
適当に書いていると (主に prepublish/prepare/prepublishOnly あたりで) 落とし穴に嵌ることがありそうなので.
npm install
(引数なし)
- preinstall
- install
- postinstall
- prepublish
- prepare
prepublish は npm@5 以降では prepublishOnly と同じ動作になり, publish の前にのみ実行されるようになるので注意.
npm install <pkg>
(引数あり)
インストール先ではなく, インストールされるパッケージのスクリプトについてです.
- preinstall
- install
- postinstall
こちらは prepublish や prepare は実行されない (まあ当然か).
npm pack
あまり使わないけれど publish せず tarball を作るだけのコマンド.
- prepublish
- prepare
tarball が作成されるのはこれらが実行された後.
こちらも npm@5 以降では prepublish は実行されなくなるはず.
npm publish
- prepublish
- prepare
- (ここで tarball が作成される)
- prepublishOnly
- publish
- postpublish
prepublishOnly は tarball 作成後に実行されるので, ここでファイルを生成したりしても publish されるものには含まれないので注意. ビルドなどは必ず prepare で行うようにする.
やはり npm@5 では prepublish は prepare の前ではなく prepublishOnly の位置に移動する.