Javascript 如何让装饰师与babel&;合作;网页包?
我有以下设置:Javascript 如何让装饰师与babel&;合作;网页包?,javascript,decorator,webpack,babeljs,ecmascript-next,Javascript,Decorator,Webpack,Babeljs,Ecmascript Next,我有以下设置: { "babel-core": "~5.8.25", "babel-eslint": "^4.1.3", "babel-loader": "~5.3.2", "babel-polyfill": "^6.2.0", "eslint": "^1.7.3", "eslint-config-airbnb": "^0.1.0", "eslint-loader": "~1.1.0", "eslint-plugin-angular": "~0.12.0",
{
"babel-core": "~5.8.25",
"babel-eslint": "^4.1.3",
"babel-loader": "~5.3.2",
"babel-polyfill": "^6.2.0",
"eslint": "^1.7.3",
"eslint-config-airbnb": "^0.1.0",
"eslint-loader": "~1.1.0",
"eslint-plugin-angular": "~0.12.0",
// ...
}
网页:
module: {
preLoaders: [{ test: /\.js$/, exclude: /node_modules/, loader: 'eslint-loader'}],
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loaders: ['ng-annotate', 'babel-loader?plugins[]=transform-decorators-legacy'],
}
]
}
但我得到了以下错误:
TypeError: The plugin "transform-decorators-legacy" didn't export a Plugin instance
有人知道我做错了什么吗
更新
我已经升级到Babel 6,现在有以下设置:
{
"babel-core": "^6.0.0",
"babel-eslint": "^4.1.3",
"babel-loader": "^6.0.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-polyfill": "^6.2.0",
"babel-preset-es2015": "^6.0.0",
"babel-preset-stage-0": "^6.5.0",
"eslint": "^1.10.0",
"eslint-config-airbnb": "^4.0.0",
"eslint-loader": "^1.2.0",
"eslint-plugin-angular": "^0.15.0",
// ...
}
以及:
但是get解析错误:意外标记非法
引用装饰程序。经过一些搜索,我能够在不使用.babelrc
文件的情况下使其工作
安装
npm安装--保存dev babel插件转换装饰器的旧版
在webpack.config.js
我在你的package.json中没有看到
babel插件转换装饰器的遗留
——你安装了吗?“让ES6装饰器工作起来”——没有办法。装饰器是ES7的一项功能,不是ES6的一部分。@Bergi,我的坏。。。我的意思是ES7。自从升级到babel 6之后,我现在遇到了一个“意外令牌非法”错误,指的是decorator为什么不使用.babelrc文件,您可以在其中指定插件?:)
module: {
preLoaders: [{ test: /\.js$/, exclude: /node_modules/, loader: 'eslint-loader'}],
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loaders: ['ng-annotate', 'babel?presets[]=es2015&presets[]=stage-0&plugins[]=transform-decorators-legacy'],
}
]
},
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
plugins: ['transform-decorators-legacy'],
presets: ['es2015', 'stage-0', 'react']
}
}
]