npm prepareにビルドのプロセスを書くときはnpm@6.10だと上手くいく
#npm #JavaScript #Node.js
だが、6.11や6.12だと上手くいかない。
TypeScriptなどのnpmパッケージをGitHub経由でnpm-installしたいときは、npm scriptでビルドする手順を書きたい。リポジトリに/distみたいなビルドの自動生成ファイルを管理はしたくないから。package.jsonの"prepare"にTypeScriptでのビルドを書いたりしている。npm 6.10でnpm installすれば上手くいくが、6.11とか6.12だと失敗する。
おそらくnpm prepublishとnpm prepareの挙動が変わることがアナウンスされていたのでそれが影響しているだと思う。そのアナウンス時に解釈したときは"prepare"にビルドプロセスを書けば今後の変化に対応できるかなと解釈したが、実際はそうではなかった様子。npmは「ステージに分けて破壊的に変更する」と言っていてごちゃごちゃしていて読み解くのに苦労する。日本語だと「npm の prepublish と prepare の変遷 - Qiita」が詳しそう。