我看到Babel 6现在有三个预设:es2015,react和stage-x.我读到我可以这样设置.babelrc:
{
"presets": ["es2015", "react", "stage-0"]
}
Run Code Online (Sandbox Code Playgroud)
或直接在package.JSON中如下:
{
...,
"version": x.x.x,
"babel": {
"presets": ["es2015", "react", "stage-0"]
},
...,
}
Run Code Online (Sandbox Code Playgroud)
我可以进一步使用带有webpack的babel-loader,如下所示:
loader: 'babel?presets[]=es2015'
Run Code Online (Sandbox Code Playgroud)
所以为了编译所有好的和干净的我正在添加babel-loader,刚刚更新为使用Babel6,到这样的webpack配置:
module.exports = function(options) {
var jsLoaders = ['babel?presets[]=es2015'];
[...]
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loaders: jsLoaders
},
{
test: /\.jsx$/,
exclude: /node_modules/,
loaders: options.production ? jsLoaders : ['react-hot'].concat(jsLoaders)
},
[...]
Run Code Online (Sandbox Code Playgroud)
现在,当我在没有 .babelrc设置root或package.JSONpresets 选项的情况下进行编译时,即仅使用webpack配置中的babel-loader es2015预设集时,我的React组件类中出现了关于静态propTypes的意外标记错误:
ERROR in ./app/components/form/index.jsx
Module build failed: …Run Code Online (Sandbox Code Playgroud)