即时通讯工作在使用es6和es7代码的Aurelia应用程序,即时尝试使用babel传输代码。我在packages.json文件中的以下Babel transpiling es7类装饰器意外的令牌错误
"scripts": {
"babel": "babel --stage 1 -d AureliaWeb/ ../Test/Aurelia/ --extends babelrc",
我已经安装了以下软件包:
"devDependencies": {
"babel-core": "^6.10.4",
"babel-plugin-syntax-decorators": "^6.8.0",
"babel-plugin-syntax-flow": "^6.8.0",
"babel-plugin-transform-es2015-modules-amd": "^6.8.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.10.3",
"babel-plugin-transform-es2015-modules-systemjs": "^6.9.0",
"babel-plugin-transform-flow-strip-types": "^6.8.0",
"babel-preset-es2015": "^6.9.0",
"babel-preset-es2015-loose": "^7.0.0",
"babel-preset-react": "^6.11.1",
"babel-preset-stage-0": "^6.5.0",
"babel-preset-stage-1": "^6.5.0",
"babel-preset-stage-2": "^6.11.0",
"babel-preset-stage-3": "^6.11.0",
"babel-register": "^6.9.0",
"chai": "^3.5.0"
},
"dependencies": {
"babel-plugin-transform-class-properties": "^6.10.2",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-es2015-loose": "^7.0.0",
"core-js": "^2.4.0",
"lodash": "^4.13.1"
}
我试着去transpile ES7代码看起来像:
import {inject, noView} from 'aurelia-framework';
import {HttpClient} from 'aurelia-http-client';
@noView() <-- THIS IS CAUSING THE ERROR!!
@inject(HttpClient)
export class CompanyDataManager {
即时得到的错误语法错误意外的令牌arount类装饰器@noView。我已经检查了第1阶段预设的,我知道这个类的装饰已被删除http://babeljs.io/docs/plugins/preset-stage-1/
由于这一点,我已经在传统的装饰增加了“巴别塔 - 插件 - 转换 - 装饰遗留在这里找到” https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy
所以我的.babelrc(它位于我的项目的根目录)看起来像这样:
{
"presets": [ "es2015-loose", "stage-1" ],
"plugins": [
"syntax-decorators",
"syntax-flow",
"babel-plugin-transform-decorators-legacy",
"transform-class-properties",
"transform-flow-strip-types"
]
}
但是,我仍然没有找到喜悦!问题是
- 我如何确认我的babelrc文件正在拾起时,即时执行在npm巴贝尔脚本?我尝试添加--extend babelrc试图强制它,但我不知道这是否正确。
我还试图在巴别命令等,从而指定一个插件:
“巴别--plugins巴贝尔-插件 - 转换 - 装饰遗留--stage 1 -d AureliaWeb/../Test/Aurelia /“
仍然没有运气,任何帮助将不胜感激。
更新1
与.bablerc文件乱搞后,我想我可能已经把它放在错误的位置。我的结构如下(它是一个mvc应用程序)。
- Test.UnitTest(项目)< - 我从这里运行巴贝尔脚本
- AureliaWeb < - 结束trandpiled位置
- 测试(项目)
- Aurelia < - 包含实际Aurelia代码
在已经移动的.bablerc文件到测试> Aurelia路上,我开始收到以下错误
未知插件“变换装饰遗”的“C规定:\代码的\ src \测试\奥里利亚\ 。babelrc”设置为0,试图解决相对于‘C:\代码的\ src \测试\奥里利亚’
我试图安装包在两个项目变换装饰遗留,看它是否有什么差别
更新2
我现在可以证实,这是事实问题,似乎通天文件需要被放置在源文件夹,而不是目的地或从巴贝尔已经执行的位置。
感谢您的回应,我试图删除括号,但即时通讯仍然得到相同的错误。 – FishFingers
你需要'syntax-decorators'和'decorators-legacy'吗?我想你只需要第二个。 –
我已经删除了语法装饰器,但即时通讯仍然得到相同的结果。 – FishFingers