我正在使用stage-0
Babel预设,以便像myMethod = () => { /* code here */ }
这样的表达式使用类方法。由于我开始在stage-0
预设中使用此功能,我的项目在iOS < 10
停止工作,因为输出代码包含默认函数参数function myFunc(a, b = 0) { /*code here*/ }
有没有办法配置Babel将我的代码传输到较低的标准?
我的webpack babel loader config:
presets: ["es2015", "stage-0", "react"]
P上。 S.在我开始使用stage-0
之前一切正常,babel loader配置与stage-0
相同。
特别是对于Sulthan,生成错误的代码
Component.prototype.has = function(key, opts, includeDefault = false) {
var i18n = this.props.i18n;
// Forth argument is the locale that should be used
// We can't use the active one because of the SSR and shared I18n state
// Also, we need to observe i18n.locale to detect changes, so this is useful
return I18n.has(key, opts, includeDefault, i18n.locale);
};
错误是:
SyntaxError:
Unexpected token '='.
Expected a ')' or a ',' after a parameter declaration. /bundle.js:950
我再说一遍,Babel生成的这部分代码是传输代码的结果,显然是i18n
库。
答案 0 :(得分:0)
好的,伙计们,问题是我的node_modules之一是和谐的,我的Babel配置排除了整个node_modules
目录。
loader: 'babel-loader',
exclude: /node_modules/,
query: {
presets: ["es2015", "stage-0", "react"],
plugins: ["transform-class-properties"]
}
我从配置中删除了exclude: /node_modules/,
,现在它完美无缺!