12日目の記事はそれぞれ以下の記事でした。npmモジュールのアップデートとの向き合い皆さん、npmモジュールのアップデート、やっていっていますか?npmモジュールのアップデートをやっていくこうとしても、フロントエンドで使っている結果としてブラウザを用いた動作確認が大変だったり、そもそもnpmモジュールに詳しくないと影響範囲が分からなくて敬遠されてしまった結果、詳しい一部の人がnpmモジュールのアップデートを気が向いたときにやって治安をなんとか維持しているという状況も少なくないと思います。やることがあって億劫npmモジュールに対するコンテキストを有していないと、どれがどのように作用をするのかもイマイチ当たりがつかないなので、npmモジュールのアップデートは気合がある人が月1とかにガッとやる羽目になっていて、なかなか横展開できていない依存性が高い月1くらいだと積まれているモジュールも多いので、なかなかその状態からmajorアップデートもやるぞとはならないこういったnpmモジュールのアップデートのコストが高いとメンバーが感じている状況を少しでも緩和するためのアイデアとそれを具体化するCLIツールを作ったのでご紹介です。npm-safety-updater上記のような問題について話していたときにこの問題に向き合うアイデアとして次のようなことが挙がりましたユーザーに配っているJSの中身が変わったら何はともあれ結局手で確認することからは逃れられない逆に言うと、それに差分が無いときはリリースに載せても問題ないと判断して良さそう今はここも手で上げてみて差分があるかないかを見ているので、それを自動化出来ると、人間は動作確認が必要だったり、複雑なメジャーバージョンアップに注力できそうまた、buildやテストのプロセスが成功するかどうかもコマンドを叩いてみれば分かるはずなので自動化されたいこういったアイデアを元に作ったのがnpm-safety-updaterです。主な機能として以下のようなものがあります。ciなどのコマンドを使った掃除もやってくれます例えば次のような設定ファイルを用意すると、初期状態でbuildしたものとjs,cssのdiffが無い場合に成功となった後にgitのcommitまでやってくれるような設定を書くことが出来ます。ci等で環境を整えというのが行われるので、実行自体には時間がかかりますが、それでも人間がちまちまと確認していたのを空き時間やJenkinsなどを利用して実行することが出来るので、まずはこのコマンドを叩いてみるだけでも、アップデート一部は出来るようになるので便利だと感じています。この結果例えば@typesから持ってきているものがpatchバージョンアップで型定義が改善された結果buildに失敗するということにも気づけるので助かっています(こういったものは後で結果を見て人間が手で調整することになるのですが、それでも対象モジュールを手で眺めていくのに比べれば大きな進歩なのではないでしょうか)。--only-devを実行してみることです。普段なかなかアップデートしていないと初回は時間がかかりがちですが、2回目移行は数も減り、確認が本当に必要なものだけに注力できるようになると思います。id:masawadaが紹介していたyarn-outdated-formatterとmackerelの組み合わせなどでアラートを出すようにして、そのタイミングでひとまずsafety-updaterを使うというのも良いのではないかなと思っています。京大マイコンクラブでは部内のシステムのアップデートをやっていきたい新入部員を年中無休で募集しています。京大生はもちろん、他学の大学生や社会人、高校生でも歓迎です。詳細は以下を御覧ください。株式会社はてなではこのような開発における問題をエンジニアリングで解決するのが好きな方を募集しています。正社員はもちろん僕みたいなアルバイトでも歓迎です。対応のブラウザで見てください。はてなブログPro京都、学生、エンジニア。漫画を読んだりインターネットをしたり。好きな飲み物はビール。})();はてなブログをはじめよう!Pasta-Kさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。