1
我正在用ES6 synthax编写客户端反应代码,并已使用webpack使用Babel转换成ES5,并生成一个我发送给浏览器的包。Webpack尽管ES2015预设输出ES6代码
它在Chrome上效果很好。不过,我最近尝试在Safari上的9.x我的包,并将它与失败: SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.
经仔细检查,我注意到这个代码在bundle.js造成此错误:
// customized for this use-case
const isObject = x =>
typeof x === 'object' &&
x !== null &&
!(x instanceof RegExp) &&
!(x instanceof Error) &&
!(x instanceof Date);
我心里的WebPack本来是要消除ES6代码(因为我正在使用es2015
预设),所以我很惊讶const
和一个箭头函数仍在捆绑中。 为什么ES6代码仍在我的包中?有什么办法让我把webpack转换成ES5吗?
这里是我的webpack.config.js的片段,我认为会做删除此synthax的工作,但没有:
module: {
loaders: [{
test: /\.jsx?/,
include: APP_DIR,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react', 'stage-2'] //, 'react-hmre']
}
}
你的测试有而不是'$'。也许试试这个测试:test:/\.jsx$/, –
尝试测试:/\.jsx?$/, – Imran
@Imran我不认为这是我写的函数,它必须是一个库或webpack。 @Niels我有'?'允许.js和.jsx文件被webpack处理 –