waf*_*ffl 6 javascript babel polyfills vue.js babeljs
我有一个依赖(vue2-google-maps),这导致我的Vue应用程序在旧浏览器中出现问题,引发了错误Object.entries.
在polyfill上阅读Vue CLI Docs,我看到它提到尝试加载polyfill babel.config.js.
我的babel.config.js:
module.exports = {
presets: [
['@vue/app', {
polyfills: [
'es6.object'
]
}]
]
}
Run Code Online (Sandbox Code Playgroud)
抛出错误:
Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: [BABEL] /PROJECT_DIR/src/main.js: Cannot read property 'android' of undefined (While processing: "/PROJECT_DIR/node_modules/@vue/babel-preset-app/index.js")
at targetEnvironments.filter.environment (/PROJECT_DIR/node_modules/@babel/preset-env/lib/index.js:75:16)
at Array.filter (<anonymous>)
at isPluginRequired (/PROJECT_DIR/node_modules/@babel/preset-env/lib/index.js:74:56)
at includes.filter.item (/PROJECT_DIR/node_modules/@vue/babel-preset-app/index.js:23:12)
at Array.filter (<anonymous>)
at getPolyfills (/PROJECT_DIR/node_modules/@vue/babel-preset-app/index.js:22:19)
at module.exports (/PROJECT_DIR/node_modules/@vue/babel-preset-app/index.js:94:17)
at loadDescriptor (/PROJECT_DIR/node_modules/@babel/core/lib/config/full.js:163:14)
at cachedFunction (/PROJECT_DIR/node_modules/@babel/core/lib/config/caching.js:42:19)
at loadPresetDescriptor (/PROJECT_DIR/node_modules/@babel/core/lib/config/full.js:233:63)
at config.presets.map.descriptor (/PROJECT_DIR/node_modules/@babel/core/lib/config/full.js:68:19)
at Array.map (<anonymous>)
at recurseDescriptors (/PROJECT_DIR/node_modules/@babel/core/lib/config/full.js:66:38)
at loadFullConfig (/PROJECT_DIR/node_modules/@babel/core/lib/config/full.js:106:6)
at process.nextTick (/PROJECT_DIR/node_modules/@babel/core/lib/transform.js:28:33)
at process._tickCallback (internal/process/next_tick.js:112:11)
@ multi (webpack)-dev-server/client?http://192.168.1.201:8080/sockjs-node (webpack)/hot/dev-server.js ./src/main.js
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我用它创建了这个项目Vue CLI 3.0.3
您需要更改es6.object为es7.object.entries才能Object.entries在旧浏览器上工作。
所以你的/babel.config.js应该如下所示:
module.exports = {
presets: [
[
"@vue/app",
{
polyfills: ["es7.object.entries"]
}
]
]
};
Run Code Online (Sandbox Code Playgroud)
我在这里找到了polyfills名称:built-in-features.js#L153
| 归档时间: |
|
| 查看次数: |
2557 次 |
| 最近记录: |