先日よりcssの生成でお世話になっておりますgulp-sassのタスクより下記のようなwarningエラーが出るようになってしまいました。
$ gulp hogehoge-task [13:53:44] Using gulpfile ~\***\gulpfile.js [13:53:44] Starting 'hogehoge-task'... Browserslist: caniuse-lite is outdated. Please run next command `npm update` [13:53:44] Finished 'hogehoge-task' after 118 ms
npmの場合、updateはマイナーバージョンまでしか行われないのでupdateを行ってもダメなのですが、npmのサイトを見ると最新はcaniuse-lite@1.0.30001008で、いま怒られてるのがcaniuse-lite@1.0.30000969なので、updateでOKと思ったのですがupdateしてもバージョンアップされず困ってました。ちなみに、warningエラー文の「npm update」を打ってもバージョンアップされずダメでした。
そこで、gulp-sassをアンインストールして、再インストールしてみましたが結局ダメ。
なんじゃこりゃと悩んだ挙げ句、わたしが勝手に依存関係が下記のような感じと思い込んでいましたが、
+-- gulp-sass@4.0.2 | +-- gulp-autoprefixer@6.1.0 | | +-- autoprefixer@9.5.1 | | +-- caniuse-lite@1.0.30000969
これが勘違いで下記のような感じで、gulp-sassはまったく関係なしでした。
+-- gulp-sass@4.0.2 +-- gulp-autoprefixer@6.1.0 | +-- autoprefixer@9.5.1 | +-- caniuse-lite@1.0.30000969
npmサイトでgulp-autoprefixerを見ると、最新はgulp-autoprefixer@7.0.1で、いま怒られてるのがgulp-autoprefixer@6.1.0、、、メジャーバージョンアップされてました。ということで、下記のようにgulp-autoprefixerを一旦アンインストールして、再インストールしてみたところ、依存関係でもあるcaniuse-liteも最新版にアップされてました。
$ npm rm gulp-autoprefixer removed 43 packages in 0.59s $ npm install gulp-autoprefixer npm WARN gulp-autoprefixer@7.0.1 requires a peer of gulp@>=4 but none is installed. You must install peer dependencies yourself. + gulp-autoprefixer@7.0.1 added 43 packages from 66 contributors in 2.585s
以上、初歩的なネタ記事でしたが、たまにnpm触って恥ずかしいくらい初歩的な箇所で間違えてしまったなぁと感じています。
【補足】gulp-autoprefixerは、sass/scssをチェックして、現在のブラウザの使用状況を踏まえつつ、ベンダープレフィックス付きのcssを出力してくれる頼もしいパッケージです。