[英]webpack 2 doesn't work on IE11?
我有一個非常基本的javascript項目,它使用webpack(^ 2.6.0)作為模塊捆綁器。 作為供應商模塊有一個依賴項,我有一個入口點。 我的配置如下:
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: {
bundle: './modules/main.js',
vendor: ['react']
},
output: {
path: path.join(__dirname, 'build'),
filename: '[name].js',
chunkFilename: '[id].js'
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: "vendor"
})
]
};
這將創建bundle bundle.js
和vendor.js
。 vendor-bundle還包含webpack-bootstrap-code,它在加載任何模塊之前加載。 現在,檢查引導代碼顯示在第40行,生成了webpack
/******/ var resolvedPromise = new Promise(function(resolve) { resolve(); });
不幸的是,IE11上沒有Promise,即使你在包含Promise(例如import 'babel-polyfill'
) import 'babel-polyfill'
作為入口點的第一件事,或者甚至作為它自己的入口點,它也永遠不會得到在引導代碼運行之前執行,這意味着我不能在IE11上使用此代碼,除非我在webpack-bundles之前手動包含Promise-polyfill。 不出所料,IE11拋出了一個Promise is not defined
錯誤,甚至在我得到任何代碼甚至是供應商包之前。
我在這里遺漏了什么或這是預期的行為嗎? 我無法在webpack文檔中找到任何可以解決此問題的內容。
這似乎是webpack 2.6.0引入的一個問題,已經發布了一個錯誤: https : //github.com/webpack/webpack/issues/4916
移動到babel 7時我遇到了類似的問題。我沒有指定useBuiltIns鍵,因此未應用polyfill。
"useBuiltIns": "usage"
是我失蹤的重要路線。
"debug": true
對於確定正在應用的polyfill非常有幫助
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"browsers": ["IE >= 11"]
},
"useBuiltIns": "usage",
"debug": true
}
],
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-classes"
],
"ignore": ["/node_modules/*"]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.