現在の状況
現在運用中のサービスのNode.jsバージョンが(かなり)古いため、
それをアップデートしないとそろそろやばいのでは?から始めました。(いって現在運用中のサービスに関しては、スタイルのビルドぐらいしか使ってなかったのでずっとメンテナンスsれてなかったのです・・)
現在のLTSがv16だったので、
Node.jsリリース一覧
まずはv16系にアップデートすることになりました。
問題
ただバージョンあげました、わーいで終わる話でしたらすごく良かったのですが、
すぐさま壁にぶつかってしまいました・・
現在使ってるパッケージのバージョンも一緒にあげないといけないので、Node.jsのバージョンを上げると同時にパッケージのバージョンも全てチェックしないといけなかったわけです。
今回はその中でもネックだったものを紹介したいと思います。
- gulp
現在のサービスのスタイルのビルドの時使っていて、ずっと使っていたバージョンがv3.9.1であり、gulpって3と4で色々差があり、文法はもちろんバージョン3までがNode.js11までしか使えず、それ以上のバージョンにするにはNode.js12以上が必要だったため、まずはgulpを4にしないといけなかったです。
ここで少しグチになっちゃいますが、現在担当してるサービスのフロントは自分一人だったので、通常業務を行いながらこちらまでカバーすることがとても難しくずっと後回しにされてました。それが全社的にバージョンアップデートをちゃんとしよう!という流れを作ってやっと着手することになりました。
諸論が長かったのですが、gulpの4に合わせてgulpfile.jsの文法を直しました。
主に違うところはgulp.task
とgulp.watch
の書き方です。
gulp.task
gulp.task('css-minlib', ['css-conclib'], function() {
gulp.task('css-minlib', gulp.series('css-conclib', function(){
gulp.watch
gulp.watch('css/sp/common.css', ['css-min']);
gulp.watch('css/sp/common.css', gulp.task('css-min'));
これだけです笑
これがなぜか昔一回チャレンジした時にうまく行かず、放置状態でしたけど
いざちゃんと取り組んだら30分もかからずびっくりでした。
これでgulp4を導入して動かしたところ、綺麗に回ってくれました。パチパチ
残りの作業
でNode.js v16に無事切り替えられたかと言われるとそれがまだ・・な状態です。
色々理由はありますが早くアップデートを終わらせたい気持ちでいっぱいいっぱいです笑
そもそもv16が2023年の9月でサポート切れるということで、もうv18にした方がいいのでは・・?とも思ってるところです。
その時にはまたv18でパッケージが動かない可能性もあるので要チェックですね。