1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NPMリポジトリの依存ライブラリアップデート

Last updated at Posted at 2019-07-18

先日、 GitHub のセキュリティアラート (Lodash に関する CVE-2019-10744) が飛んできて、対応を行ったので、メモメモ。
こういう対応って一時的にパパっとやっちゃって、メモ残さないから、後から何やったけなってなって、良くない。

今回、アップデートしたリポジトリは、以下の6つ。

Yarn での依存ライブラリのバージョンアップデート

普通に yarn upgrade を実行だと、 package.json で縛ったバージョン以上には上げてくれない。
あくまで最新にアップデートしたい場合には、 --latest を付けます。

# 特定のライブラリだけアップデートする場合
yarn upgrade lodash --latest

# 全部アップデートする場合
yarn upgrade  --latest

Gulp v3->v4 の移行について

どうせならと、全ライブラリをアップデートした影響で、 Gulp のバージョンもあがって、後方互換性のない変更にぶち当たりました。

gulp4 では、単体のタスクは gulp.task(name) (引数1つ) で、複数タスクからなるパイプラインは gulp.series (直列実行) / gulp.parallel (並列実行) で表現する、というようになったようです。

これに伴う、主な変更点は、以下のとおりです。

  • run-sequence の代わりに gulp.series / gulp.parallel を使う
    • run-sequence は Gulp にとって 3rd party library ですが、 Gulp 本体が上述の通り、同様の機能を提供したので、そちらを使うようにします
  • gulp3 で、 task の依存関係を示すために、 gulp.task の第2引数に依存性のある task の名前の配列を渡していたところには、 gulp.task(name) / gulp.series / gulp.parallel を使う
    • 依存性のあるタスクというのは、要はパイプライン実行するということなので、理にかなってますね
  • gulp3 で、 gulp.watch の第2引数に実行されるべき task の名前の配列を渡していたところも同様に、 gulp.task(name) / gulp.series / gulp.parallel を使う

これらの変更に伴って、若干、非同期処理終了を告げる callback の呼出し方が変わります。
こうやって全体通して見ると、非常に一貫性があって、納得感のある変更となっていました。

なお、 gulpfile.babel.js を使って ES6 形式で gulpfile を書いている場合には、 @babel/register をインストールだけする必要がありそうです。 (ちょっとハマりました)
この子は今までも babel-core/register, babel-register と名前を変えている厄介な子みたいです。 (babel 系、パッケージ名変えすぎ!?)

References

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?