先日Next.js v10.0.6がリリースされたのですが、パッチリリースなのですがとても大きな変更が加えられていて注意が必要です。

というのもNext.js v10.0.6からwebpackが同梱されるようになりdependenciesからwebpackがなくなりました。その結果としてnext.config.jsでwebpackの設定を拡張してプラグインを追加している場合にwebpackを見付けられないためエラーになってしまいます。

もちろんdevDependenciesにwebpackを追加すれば解決しますが、一点注意が必要な点があってwebpack v5ではなくwebpack v4を追加しなければならない点です。現時点のNext.jsはデフォルトでwebpack v4が使われます。

Release v10.0.6 · vercel/next.js github.com/vercel/next.js/rele

またNext.js v10.0.5以前ではpackage.jsonのresolutionsプロパティーにwebpack v5を追加するとwebpack v5が内部的に使われるようになっていましたがNext.js v10.0.6からnext.config.jsに

module.exports = {
// ...
future: {
webpack5: true
}
// ...
}

のように future: { webpack5: true } を追加させることによってwebpack v5が使われるようになります。これまでpackage.jsonのresolutionsプロパティーにwebpack v5を追加していた場合には修正が必要となるのでご注意ください。

Follow

私感ではあるのですがあまりにも大きな変更であるためパッチリリースでこのような変更をやめてもらいたかったという思いがあります。

webpack v5の切り替えが容易になっていたりyarn install時の時間短縮にも繋がるのでメリットある変更だとは思うのですが多くのプロダクトに影響が出てしまうのではないでしょうか。webpackプラグインを使っていない場合にはほとんど影響がないとはいえ使わざるを得ないプロダクトも多いのではないかと思います。

Next.jsには大変お世話になっている身でありながらこうしたことを言うのは大変恐縮ではあるのですが、こうした大きな変更はメジャーリリース以外ではやらないでもらいたかったです。

· · Web · 0 · 2 · 1
Sign in to participate in the conversation
ykzts.technology

ykzts.technologyMastodonのコミッターの一人である山岸和利 (ykzts) が個人で使うために運用しているMastodonサーバーです。