Webpack babel 6 ES6装饰器

我有一个使用webpack作为我的捆绑软件在ES6中编写的项目。 大部分的编译工作正常,但是当我尝试在任何地方包含装饰器时,我得到这个错误:

Decorators are not supported yet in 6.x pending proposal update. 

我查看了babel的问题跟踪器,并没有find任何东西,所以我假设我用错了。 我的webpackconfiguration(相关位):

 loaders: [ { loader: 'babel', exclude: /node_modules/, include: path.join(__dirname, 'src'), test: /\.jsx?$/, query: { plugins: ['transform-runtime'], presets: ['es2015', 'stage-0', 'react'] } } ] 

我没有任何其他问题,箭头function,解构所有工作正常,这是唯一不起作用。

我知道我总是可以降级到babel 5.8,但是如果有什么方法可以在当前版本(v6.2.0)中使用,它将会有所帮助。

这个Babel插件为我工作:

https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy

 npm i --save-dev babel-plugin-transform-decorators-legacy 

.babelrc

 { "presets": ["es2015", "stage-0", "react"], "plugins": [ ["transform-decorators-legacy"], // ... ] } 

要么

的WebPack

 { test: /\.jsx?$/, loader: 'babel', query: { cacheDirectory: true, plugins: ['transform-decorators-legacy' ], presets: ['es2015', 'stage-0', 'react'] } } 

反应本机

有了react-native你必须使用babel-preset-react-native-stage-0插件。

 npm i --save babel-preset-react-native-stage-0 

.babelrc

 { "presets": ["react-native-stage-0/decorator-support"] } 

请看这个问题和答案的完整解释。

在babeljs闲置networking聊天上花了5分钟后,我发现装饰者在当前版本的babel(v6.2)中被破坏。 目前唯一的解决scheme似乎是降级到5.8。

他们似乎也将他们的问题跟踪器从github移到https://phabricator.babeljs.io

我写下所有这些,因为经过几个小时的search,我发现目前的文档非常差,缺乏。

只安装babel-plugin-transform-decorators-legacy并不适用于我(我有一个使用酶和业力一起的configuration)。 原来安装transform-class-properties : transform-class-properties ,并确保传统插件是在transform-decorators-legacy中的文档中的transform类插件之前最终使其适用于我。

我也没有使用.babelrc文件,但添加到我的karma.conf.js文件为我工作:

 babelPreprocessor: { options: { presets: ['airbnb', 'es2015', 'stage-0', 'react'], plugins: ["transform-decorators-legacy", "transform-class-properties"] } } 

我也把它添加到我的装载者:

 loaders: [ { test: /\.js$/, loader: 'babel', exclude: path.resolve(__dirname, 'node_modules'), query: { presets: ['airbnb', 'es2015', 'stage-0', 'react'], plugins: ["transform-decorators-legacy", "transform-class-properties"] } }, 

你只需要一个转换装饰器插件: http : //babeljs.io/docs/plugins/transform-decorators/