我一直在使用webpack和es2015作为我的反应项目,但我想更新到es2016。我认为这就像使用npm安装新的预设然后更改我的.babelrc一样简单,但是当我执行我的所有es2015语法时会抛出错误。我认为由于我的一些错误,es2016根本没有加载。
抛出的确切错误是
Uncaught SyntaxError: Unexpected token import
这是我的webpack.config.js
var webpack = require('webpack');
var path = require('path');
var BUILD_DIR = path.resolve(__dirname, 'src/client/public');
var APP_DIR = path.resolve(__dirname, 'src/client/app');
var config = {
entry: APP_DIR + '/index.jsx',
output: {
path: BUILD_DIR,
filename: 'bundle.js'
},
module : {
loaders : [
{
test : /\.jsx?/,
include : APP_DIR,
loader : 'babel-loader',
query: {
presets: ['es2016']
}
},
{
test: /\.css$/,
loader: 'style-loader'
},
{
test: /\.css$/,
loader: 'css-loader',
query: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
},
{
test: /\.json$/,
loader: 'json-loader'
}
]
},
node: {
fs: 'empty',
net: 'empty',
tls: 'empty'
}
};
module.exports = config;
这是我的.babelrc
{
"presets" : ["es2016", "react"]
}
答案 0 :(得分:0)
es模块是2015规范的一部分,因此您还需要包含es2015预设。 es2016预设仅包含case class TestData(val s: String) {
override def equals(obj: Any) = obj.isInstanceOf[TestData] && obj.asInstanceOf[TestData].s == this.s
}
插件。
答案 1 :(得分:0)
要使用es2016预设,您需要添加它到预设。根据{{3}},ES2016:
ES2016 :仅编译ES2016至ES2015的内容
因此,如果你像这样更新.babelrc
,它将正确转换:
{
"presets" : ["es2015", "es2016", "react"]
}
或者您可以添加babel docs。它将包括es2015,es2016和es2017预设。
另一件事:您在.babelrc
文件和webpack加载程序配置中设置预设。你只需要在一个地方设置它。