現在Vue.jsによるアプリケーションを開発しています。
IE11を含むES6未対応環境に対応させるため、下記の通りBabelの設定を行いました。
(package.jsonのdevDependenciesには "@vue/cli-plugin-babel": "^4.3.1" との記載があります)
- babel.config.js
js
1module.exports = { 2 presets: [["@vue/cli-plugin-babel/preset", { 3 useBuiltIns: 'usage', 4 corejs: '3' 5 }]] 6}
- .browserslistrc
defaults Chrome > 45 IE 11
上記設定だけで問題ないと思っていましたが、ポリフィルが適用されていないようで、IE11の場合にfetch処理にてエラーとなってしましました。
そこでindex.htmlにて下記のコードを追加し、IE11でも動くようになりました。
html
1 <script> 2 if (ua.indexOf('Trident') != -1 || ua.indexOf('MSIE') != -1) { 3 // polyfill for IE 4 document.write('<script src="https://unpkg.com/core-js-bundle@3.0.0-alpha.1"></script>'); 5 document.write('<script src="https://unpkg.com/whatwg-fetch@2.0.4/fetch.js"></script>'); 6 } 7 </script>
<質問>
Babel側の設定だけでトランスパイル+ポリフィル適用となるものと思っていましたが、ポリフィルが適用されないのは何か設定が不足しているからでしょうか?
babel.config.jsのpresetsの役割についても、十分理解できていないため何か設定が間違っているのかもしれません。
何か気づいた点がありましたらご指摘頂けると助かります。
回答1件
あなたの回答
tips
プレビュー