Babel 6 CLI:意外的令牌导出?

iwa*_*shi 9 javascript node.js npm ecmascript-6 babeljs

我正在尝试通过它的CLI运行Babel,babel-node但我一直收到Unexpected token export错误.我知道Babel 6是关于插件的,我需要设置插件,.babelrc但它似乎不能正常工作.

所以这是我的问题:

对于那些对我想要导出的东西感到好奇的人来说,这里是班级:

'use strict';

class Factorial {
  static solve (num) {
    if(num === 0) return 1;
    else return num * Factorial.solve(num - 1);
  }
}

console.log(Factorial.solve(5))

export default Factorial;
Run Code Online (Sandbox Code Playgroud)

Jam*_*yle 16

最简单的入门方法是使用预设.

首先让我们安装我们的依赖项:

$ npm install --save-dev babel-cli babel-preset-es2015
Run Code Online (Sandbox Code Playgroud)

然后在build运行Babel的package.json中添加一个脚本:(这很重要,因为它将使用您的本地版本babel-cli而不是全局安装的版本)

"build": "babel input.js"
Run Code Online (Sandbox Code Playgroud)

package.json应该看起来像这样:

{
  "name": "my-module",
  "devDependencies": {
    "babel-cli": "^6.x.x",
    "babel-preset-es2015": "^6.x.x"
  },
  "scripts": {
    "build": "babel input.js -o compiled.js"
  }
}
Run Code Online (Sandbox Code Playgroud)

最后你要.babelrc像这样更新你的本地:

{
  "presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)

然后你跑了npm run build,你就准备好了.

另外,Babel 6的CLI有全局.babelrc选项吗?如果我必须为每个需要它的项目安装插件,这似乎很乏味......

这是一个坏主意,因为这意味着如果不更新每一个项目代码,就无法更新它.拥有本地版本意味着不太可能发生这种潜在错误.