【问题标题】:Babel 6 CLI: Unexpected token export?Babel 6 CLI:意外的令牌导出?
【发布时间】:2015-10-31 06:17:50
【问题描述】:

我正在尝试使用 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;

【问题讨论】:

  • FWIW,如果类只有静态方法,则不应使用它。要么使用一个对象,要么在这种情况下,简单地使用一个函数。
  • @FelixKling 感谢您的提示,我只是习惯于使用类,因为我来自 C++/C#/Java 背景;)

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


【解决方案1】:

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

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

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

然后将 build 脚本添加到运行 Babel 的 package.json 中:(这很重要,因为它将使用您的本地版本 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 选项?如果我必须为每个需要它的项目安装插件,这似乎很乏味......

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

【讨论】:

  • 谢谢!我意识到预设存在并且确实使用了它,但似乎 import 关键字不起作用?你知道这个问题吗?
  • 可能是你的 Babel 版本有问题。有一些早期问题,请尝试更新,如果这不起作用,请通过 Slack 频道寻求支持。 slack.babeljs.io
【解决方案2】:

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 2017-05-08
    • 2019-02-23
    • 2016-08-15
    • 1970-01-01
    • 2020-11-16
    相关资源
    最近更新 更多