Babel 不会为 IE11 转换 Javascript 默认值参数
Posted
技术标签:
【中文标题】Babel 不会为 IE11 转换 Javascript 默认值参数【英文标题】:Babel will not transpile Javascript default value parameters for IE11 【发布时间】:2020-11-19 14:33:57 【问题描述】:我的 javascript 文件
require('core-js');
const dzsHelpers = require('./js_common/_dzs_helpers');
const dzsapHelpers = require('./jsinc/_dzsap_helpers'); <-- THE CODE IS HERE
const dzsapComments = require('./jsinc/components/_comments'); [ ... ]
我的 webpack
测试:middleExtensionRegex, 排除:/(node_modules|bower_components)/, 加载器:“通天塔加载器”, 选项: 来源地图:是的, 缩小:真实, sourceType:“明确”, 预设:[ ['@babel/preset-env', useBuiltIns: '入口', corejs:版本:3, 调试:是的, forceAllTransforms:真, 松散的:真实的, “forceAllTransforms”:是的, “目标”: “铬”:“58”, “即”:“11” ] ], “插件”:[ ["@babel/plugin-transform-parameters", ], ["@babel/plugin-transform-arrow-functions"], [ "@babel/transform-runtime", “再生器”:真 , ] ], 忽略:['node_modules'] , // 加载器的选项这可以满足我的需要 - https://babeljs.io/docs/en/babel-plugin-transform-parameters - 在纸上...
但是,输出总是这样
function(elThis,defaultOptions,argOptions=null,searchedAttr="data-options")var finalOptio [...]
而IE11自然会抱怨……
我做错了什么?
【问题讨论】:
为什么"forceAllTransforms": true
被列出了两次?
没关系
所有尝试都是徒劳的,唯一的解决办法是使用闭包编译器
【参考方案1】:
所有使用 babel 预设 env 目标浏览器 ie11 的尝试都是徒劳的。
唯一对我有用的解决方案是使用 Closure Compiler (webpack 5):
optimization:
minimizer: [
new ClosurePlugin(mode: 'STANDARD',
debug: true,
languageOut: 'ECMASCRIPT5',
renaming: false
)
]
,
【讨论】:
以上是关于Babel 不会为 IE11 转换 Javascript 默认值参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 babel-loader 转换 node_modules 模块?
IE浏览器对ES6不兼容的问题(语法错误Promise未定义Symbol未定义)