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

时间:2015-10-31 06:17:51

标签: javascript node.js npm ecmascript-6 babeljs

我尝试使用babel-node通过它的CLI运行Babel,但我一直收到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;

2 个答案:

答案 0 :(得分:16)

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

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

$ npm install --save-dev babel-cli babel-preset-es2015

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

"build": "babel input.js"

您的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"
  }
}

最后,您要更新本地.babelrc,如下所示:

{
  "presets": ["es2015"]
}

然后你运行npm run build,你就可以了。

  

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

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

答案 1 :(得分:4)

我收到了同样的错误,但我的webpack / babel配置看起来是正确的。通过反复试验,我将export myFunction替换为export default myFunction,错误得到了解决。

后来,我意识到正确的导出方式是export {myFunction}。我实现了它,一切正常。