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/