我尝试使用我的应用程序应用这个示例http://jamesknelson.com/unlocking-decorators-and-other-es7-features-with-webpack-and-babel/来启用装饰器。我尝试按照说明将query:{stage:0}
添加到webpack.config.js,但我收到错误Cannot define 'query' and multiple loaders in loaders list
在我的fluxible babel 5 webpack项目中启用stage:0 / decorators的正确方法是什么?
.babelrc文件与传递给webpack.config的选项之间的区别是什么?
webpack.config.js
var webpack = require('webpack');
var path = require('path');
var webpackConfig = {
resolve: {
extensions: ['', '.js', '.jsx']
},
entry: [
'webpack-dev-server/client?http://localhost:3000',
'webpack/hot/only-dev-server',
'./client.js'
],
output: {
path: path.resolve('./build/js'),
publicPath: '/public/js/',
filename: 'main.js'
},
module: {
loaders: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loaders: [
require.resolve('react-hot-loader'),
require.resolve('babel-loader')
],
query: {stage: 0}
},
{ test: /\.json$/, loader: 'json-loader'}
]
},
node: {
setImmediate: false
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
}
})
],
devtool: 'eval'
};
module.exports = webpackConfig;
答案 0 :(得分:0)
这是一个非最佳的解决方案,但它对你来说可能已经足够好了,而且对我来说是这样的:
将babel-core和babel-loader降级为版本5.具体在package.json
devDependencies
:
“babel-core”:“5.8.14”, “babel-loader”:“5.3.2”
将babel配置添加为package.json
中的顶级属性:
“babel”:{ “阶段”:0 }
可以将相同的属性放在.babelrc
文件中。
资料来源:Hendrik Swanepoel关于React的Pluralsite课程以及相应的回购:https://github.com/hendrikswan/react-stack。在课程中,他广泛使用alt.js装饰器,它没有任何警告。
同样,这不是一个完美的解决方案,因为它需要降低你的依赖关系,但它可能会节省你和其他人一些时间。
答案 1 :(得分:0)
SurviveJS上有关于您的设置的说明。我试了一下,效果很好。它也可以帮助你:
答案 2 :(得分:0)
将.babelrc
设置为可用于我的可渗透项目
{
"optional": ["es7.classProperties"],
"stage": 0
}