依存パッケージの更新を、npm updateですませたい。けれど、Google Closure Compilerでちょくちょく引っかかる。そのうちバージョン番号のつけ方を変えるだろうと待っていたけど、変える気がなさそうなので、ついにあきらめた。

ラッパーとかプラグインのパッケージをSemantic Versioningで表現するのは、本当に難しいと思う。プラグインの場合は、コア側でガイドラインでも作れば良さそうだけど、ラッパーだとコア側のSemverと同期するのは難しい。ラッパー側とコア側でSemverすると倍速でバージョンが積みあがっていくし、メンテナンスの手間を放棄できない。

Google Closure Compilerみたいに、コア側の更新は常にメジャー、ラッパー側の修正はマイナー以下と分けると、やりやすくなる。代わりに、ユーザーが面倒くさくなる。コア側の変更は、おおむねユーザーには関係がない。何も変わらないのにメジャー更新を強いられると、何が変わったのかを調べる手間だけがかかる。

利用しているnpmパッケージのバージョンを固定し、あらゆる更新を手作業で行うように、自分を変えるしかないのかもしれない。セキュリティーの問題を、npm auditやGitHubのSecurity Advisoriesで扱えるようになったので、これらで引っかかった時だけ更新するという仕組みなら、手作業でもなんとかなる。よく知らない人や組織による、自分に関係のない破壊的変更にわずらわされたくないなら、今すぐ自分で管理するしかない。


トランスパイルはBabelをpreset-envのtargetsをdefaultsでやってる。大丈夫そう。