メモログ

⛰ 塵が積もって山とならないメモのログ 👄

Webpack 5 compiles code with ES2015

Webpackのバージョン5ではコンパイルしたコードにES2015(アロー関数など)が含まれるようになる。これはWebpackが生成する部分に関する仕様なので、babelの設定でES5だけに制限していてもES2015が使われる。IE11ではアロー関数が処理できずに丸ごとエラーとなるので、IE11にまだ対応する必要があれば設定を確認する必要がある(今さらだけど)。

対応方法はマイグレーションガイドに載っている。webpackの設定に target: ['web', 'es5'] を追加するか、package.json の browserslist"browserslist": "defaults, IE 11" みたいな感じでIE11を対象に含めておくと良い。.babelrcのtargetの設定をpackage.jsonのbrowserslistに移動させても良い。

browserslistがdefaultsのみだけど、コンパイルしたコードにアロー関数が含まれていない場合は、内部で参照しているcaniuse-liteのDBが更新されていないためと思われる。