フロントエンドのパッケージVer起因のバグについての話。

最近何度かハマってしまったので自戒の念を込めて書き残しておく。

あくまで個人の感想であり実際の人物、団体とは関係ありません。

自分たちの書いたコードから特定できるものでもないのでレビューで潰しにくい上に検証後でも運用方法次第では余裕で出てくる、しかも影響範囲が広くて最悪。。。

なぜ検出しづらいか

パッケージ運用による理解度の低さ。

Next、Nuxtタイプのフレームワークに慣れすぎてパッケージの初期構築等も結構おざなりになりがち。

バージョン範囲指定に関してもあまり注視していない。

基本的にlockファイルでパッケージのバージョンや依存関係は固定してくれているはずだが…

lockファイルをブラックボックスだと割り切って管理を適当にしてる場合がある。

どんなときに起こりやすいか

package.jsonやlockファイルをcommitしていない、または頻度がまちまちで半端にcommitされている。

各々の環境で無邪気に書き換えてそのままcommitする。

lockファイルを消してもう一度インストールする等(普通にバージョン変わる)

上記で書いたようにレビューでもスルーされた場合、今まで使っていたものではなくマイナーアップデートされたパッケージでデプロイされる可能性が高くなる 。

対策

パッケージ管理ファイルのgit管理の徹底。

パッケージ管理ファイルの差分に関しても注視する。パッケージを1つ2つ追加した際の依存関係の更新であればnpmの使用しているパッケージのDependenciesでなんとなく何が更新、追加されるかはレビューで見れる(明らかに差分がおかしい等はキャッチできるはず)

この記事が気に入ったらサポートをしてみませんか?