【问题标题】:Babel 6 - Enable default parameters for functionsBabel 6 - 启用函数的默认参数
【发布时间】:2015-11-09 13:55:19
【问题描述】:

我有一段代码:

'use strict';

class ArticleModel {

  constructor(options = {}) {
    this.options = options
  }

}

module.exports = ArticleModel

这会导致错误 Unexpected token = - 我不相信 Babel 正在解析这个。解析函数中的默认参数需要哪个 babel 6 插件?

编辑 1 - 这是我的 .babelrc 文件

{
  "presets": [
    "es2015",
    "stage-0"
  ]
}

编辑 2 - 我没有从与 .babelrc 相同的目录运行 babel。我在 test/ 内部运行 babel,其结构如下所示:

/app
/test
/test/runner.js < -- this is what calls babel-core/register
.babelrc

我是否需要明确告诉babel-core/register .babelrc 在哪里?我以为它为它卷了一个目录。

编辑 3 - 将 babel/register 更改为 babel-core/register。仍然遇到同样的问题。

【问题讨论】:

  • 'babel/register' 不存在了吗?应该是'babel-core/register'
  • Tks @Seneca 但即使将其更改为 babel-core/register,我仍然会遇到同样的错误。

标签: javascript node.js ecmascript-6 babeljs


【解决方案1】:
npm install babel-preset-es2015 --save-dev

将以下行添加到您的 .babelrc 文件中:

{
  "presets": ["es2015"] 
}

你试过了吗?

【讨论】:

  • 是的,我做到了。我在问题中添加了我的.babelrc 文件。
  • 巴别塔为什么要这么做?太烦人了。
  • @ChrisAbrams 我知道我参加聚会有点晚了。但是您是否尝试安装它npm i -D babel-preset-es2015
【解决方案2】:

您如何将模块导入测试?当我的测试从 Babel 5 升级到 6 后开始中断时,我遇到了类似的问题。在我的情况下,问题是因为导入必须引用导入库中的 default 属性。

这个 Babel issue 的发起者举了一个很好的例子:https://github.com/babel/babel/issues/2679

【讨论】:

  • 为什么会发生这种变化?你知道吗?
  • 是的,Babel5 允许你使用不正确的 ES6 语法。 Babel6 “修复”了这个以强制使用正确的语法。这相当令人困惑,我认为很多人都会受到影响。
猜你喜欢
  • 1970-01-01
  • 2019-09-13
  • 2011-02-20
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 2012-06-14
相关资源
最近更新 更多