javascript - 带有 NodeJS 的 Babel 无法使用扩展运算符
问题描述
我正在使用 Babel (7.5.0) 和 NodeJS 最新版 (12.x),所以扩展运算符已经由 NodeJS 处理,我不希望 babel 搞砸它。
这是我的 .babelrc :
{
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-runtime"
],
"presets": [
[
"@babel/preset-env",
{
"modules": "commonjs",
"targets": {
"node": "current"
},
"useBuiltIns": "usage"
}
]
]
}
这是我的错误:
ERROR in ./src/utils/logger/logger.js
Module build failed: ReferenceError: Unknown helper objectSpread2
at loadHelper (/app/node_modules/@babel/helpers/lib/index.js:238:27)
at Object.getDependencies (/app/node_modules/@babel/helpers/lib/index.js:279:21)
at File.addHelper (/app/node_modules/@babel/core/lib/transformation/file/file.js:204:33)
at PluginPass.addHelper (/app/node_modules/@babel/core/lib/transformation/plugin-pass.js:31:22)
at PluginPass.ObjectExpression (/app/node_modules/@babel/plugin-proposal-object-rest-spread/lib/index.js:379:25)
at newFn (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:193:21)
at NodePath._call (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:53:20)
at NodePath.call (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:40:17)
at NodePath.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:88:12)
at TraversalContext.visitQueue (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:118:16)
at TraversalContext.visitMultiple (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:85:17)
at TraversalContext.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:144:19)
at Function.traverse.node (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js:94:17)
at NodePath.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:95:18)
at TraversalContext.visitQueue (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:118:16)
at TraversalContext.visitMultiple (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:85:17)
at TraversalContext.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:144:19)
at Function.traverse.node (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js:94:17)
at NodePath.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:95:18)
at TraversalContext.visitQueue (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:118:16)
at TraversalContext.visitSingle (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:90:19)
at TraversalContext.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:146:19)
at Function.traverse.node (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js:94:17)
at NodePath.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:95:18)
at TraversalContext.visitQueue (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:118:16)
at TraversalContext.visitMultiple (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:85:17)
at TraversalContext.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:144:19)
at Function.traverse.node (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js:94:17)
at NodePath.visit (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:95:18)
at TraversalContext.visitQueue (/app/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:118:16)
@ ./src/app.js 5:0-40
@ multi ./src/app.js
我读过我需要安装一些插件,但我认为这是针对较旧的 nodejs 版本,我不明白为什么我需要一个用于内置 nodejs 功能的插件。
我怎样才能做到这一点?
更新:
我在那里创建了一个问题:https ://github.com/babel/babel-loader/issues/798
解决方案
Babel 维护者在这里。
我们在 v7.5.0 中有一个错误(很快会在 v7.5.1 中修复)。您有两种可能的解决方法:
- 运行
npm install @babel/helpers
(或使用 yarn):这将强制 npm 下载@babel/helpers
v7.5.0,其中包含缺少的帮助程序。如果您也在使用@babel/transform-runtime
,请使用@babel/runtime
v7.5.0 如果您使用的是 yarn,您可以锁定
@babel/plugin-proposal-object-rest-spread
到不受该问题影响的旧版本。将此代码添加到您的 package.json:"resolutions": { "**/@babel/plugin-proposal-object-rest-spread": "7.4.4" }
编辑这应该在 v7.5.1 中修复,请更新
推荐阅读
- splunk - 使用 splunk 发现蛮力攻击
- python - 为什么 PyroPPL 中的 `Distribution` 类有 `log_prob()` 方法但没有 `prob()` 方法?
- linux - 与 GNU Make 链接时参数列表太长
- node.js - 转换 fastify-static 服务文件的响应
- java - 我们如何在 Java 中对二维数组的按行升序和按列降序进行排序?
- github - 列表中的 GitHub Markdown 链接无法正确显示
- python - 应更改 Python 日志文件的位置
- python - 按多个对象分组的功能
- javascript - React Chart Js 类组件
- c# - 将值从字典对象写入文本文件仅写入最后一个键值对