【问题标题】:How do I enable spread operator with plugin-proposal-object-rest-spread in Babel 7?如何在 Babel 7 中使用 plugin-proposal-object-rest-spread 启用扩展运算符?
【发布时间】:2018-09-09 16:37:06
【问题描述】:

我正在尝试使用 Babel 在我的项目中启用扩展运算符,但由于 Babel 已删除阶段预设,因此我无法使用扩展运算符:https://www.npmjs.com/package/@babel/plugin-proposal-object-rest-spread

我已经安装了plugin-proposal-object-rest-spread 并将其添加到我的.babelrc

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "plugins": [
    "@babel/plugin-proposal-object-rest-spread"
  ]
}

但我仍然收到以下错误:

Support for the experimental syntax 'objectRestSpread' isn't currently enabled 
 (28:3):

  26 |   onClick,
  27 |   text,
> 28 |   ...allProps
     |   ^
  29 | }) => {
  30 |   let Element = isStatic ? 'span' : renderAs;
  31 |   const props = modifiers.clean(allProps);

Add @babel/plugin-proposal-object-rest-spread (https://git.io/vb4Ss) to the 'plugins' section of your Babel config to enable transformation.

它建议我添加@babel/plugin-proposal-object-rest-spread。我有,在我的package.json

有什么想法吗?

【问题讨论】:

  • 你的项目目录结构是怎样的,你是怎么称呼 Babel 的?您的 .babelrc 文件是否可能被忽略?见babeljs.io/docs/en/config-files#6x-vs-7x-babelrc-loading
  • 我之前已经解决了,但这是正确的解决方案。作为答案。最初迁移时并不清楚这是一个重要的步骤。很多人都被它的外观绊倒了。
  • @BugHunterUK 您能否通过在此处添加答案来详细说明您的更改?即使阅读他们的文档也无济于事。

标签: babeljs


【解决方案1】:

注意:我使用的是 Quasar 框架,所以我的说明可能会略有不同,但大体相同。

对于像我这样在这个问题上花费数小时而不应该放在首位的其他人,我是这样解决的:

  1. 转到您当前拥有.babelrc 文件的目录。
  2. 创建一个名为babel.config.js 的文件并添加以下内容:
module.exports = {
    "plugins": [
      "@babel/plugin-proposal-object-rest-spread"
    ]
}
  1. 现在,做一个npm install @babel/plugin-proposal-object-rest-spread --save-dev

  2. 重新加载服务器,运行项目。它现在应该可以工作了。

在我的情况下,我没有碰我的.babelrc,而是保持原样并添加了新的配置文件。但是其他人很幸运,只是将.babelrc中的所有内容复制粘贴到babel.config.js

只要我的 0.02 美元,(你可能可以删除这部分的模组):

老实说,Babel 已经变成了一罐虫子。我不明白为什么他们总是需要不断地搞砸完美运行的实现。我希望我们在未来不需要接触这个时间槽,因为 Babel 的任何错误都会导致平均至少 2 小时来修复。

【讨论】:

  • 我有一个完美的构建,现在它失败了。你的解决方案对我不起作用。不知道他们怎么能像这样把人搞砸。
  • @MooseontheLoose 是的,很抱歉,这是 Babel 的问题。我必须在反复试验中尝试很多不同的组合才能使其正常工作。对不起,它不适合你的伙伴。他们所做的改变之多令人难以置信。我不敢相信我们还没有一个像样的 Babel 替代品。是时候摆脱它了!
  • 这个问题让我两天把头发拉出来,头撞在墙上。非常感谢。
  • 是的,这对我也不起作用。我首先尝试将它添加到.babelrc 文件中,不可行,这导致yarn dev 在启动时失败。将其添加到babel.config.js 并没有炸毁服务器,但是扩展运算符仍然在 vue 组件中给出了语法错误。我的项目是一个相对较新的 vue-cli 项目,创建于 2020 年 4 月。
  • 抱歉,我没有解决方案,但我可以告诉你,几天前(2020 年 5 月)我在你的鞋子里,结果 Babel(又一次)弃用了其他东西.自从我写了上面的答案以来,它破坏了我非常实用的代码。 ____ 通天塔。
猜你喜欢
  • 2021-06-03
  • 1970-01-01
  • 2020-02-11
  • 2020-11-01
  • 1970-01-01
  • 2017-03-26
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多