【发布时间】:2019-06-08 02:02:00
【问题描述】:
我被 IE 兼容性所困扰。 (我的vue版本是3.1.0,nuxt是2.3.4)
它与Object.assign 保持错误。这是我尝试过的列表。
babel-preset-vue-app(https://www.npmjs.com/package/babel-preset-vue-app)。听说不支持vue2.X。我按照this post 上的描述进行操作。构建源代码时出错。
在
nuxt.config.js中添加 babel-polyfill。它没有错误,但页面上仍然出现 Object.assign 错误。安装
babel/plugin-transform-object-assign。它在构建过程中也没有任何错误,而是在页面中得到了 Object assign 东西。
有什么选项我可以尝试支持 IE11 的兼容性?
这是我目前的.babelrc 和nuxt.config.js。
.babelrc
{
"presets": [
[
"env",
{
"modules": false
}
],
[ "vue-app",
{
"useBuiltIns": true,
"targets": {
"ie": 9,
"uglify": true
}
}
]
],
"plugins": [
"@babel/plugin-transform-object-assign",
"transform-vue-jsx",
[
"module-resolver",
{
"root": [
"./src"
],
"alias": {
"~sbdc": "./src/sbdc"
}
}
]
]
}
nuxt.config.js 中的构建选项
build: {
babel: {
presets: [
['vue-app', {
useBuiltIns: true,
targets: { ie: 9, uglify: true }
}
]
]
},
optimization: {
splitChunks: {
chunks: 'all',
maxInitialRequests: Infinity,
minSize: 0,
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/](babel-polyfill|moment|lodash|axios|get-size|jquery|js-cookie|jwt-decode|numeral|vuetify)[\\/]/,
name: 'utilityVendor'
}
}
}
},
output: {
publicPath: serviceConfig.pwa_publicPath || false
},
extractCSS: true,
plugins: [
new webpack.ProvidePlugin( {
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
} )
]
}
感谢您分享解决方案!
======= 编辑于 0114 =============
Etra 信息 #1。 当我在 ie11 浏览器上查看错误时,它会自动转换代码,如下所示
return {layout:"popup",data:[{resultBody:Object.assign(Object.create(null), ... sorry, sensitive data
而原来的代码是……
asyncData: async function ({req}) {
return {
resultBody: req.body,
};
},
req.body 受body-parser 支持。
【问题讨论】:
-
req.body 是一个普通的 js 对象吗?如果没有 - 最好让它 pojo 并且它会起作用。或者您可以添加 polyfill.io/v3/polyfill.min.js?features=default%2CObject.assign 或者您可以自己将 polyfill 对象分配为 js developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
@Aldarund 感谢您的建议。但是(没有冒犯,但纯粹出于好奇),我不明白为什么要使用 polyfill.io,因为在我看来,babel-polyfill 已经提供了。对我来说,babel 鼓励使用
babel-*(如果是Object.assign,babeljs.io/docs/en/babel-plugin-transform-object-assign)。再次感谢您的回答
标签: vue.js internet-explorer-11 compatibility nuxt.js babel-polyfill