我正在使用 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 的内置功能。</p>
我该怎么做?
更新:
我在那里创建了一个问题: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 中修复,请更新
关于javascript - 带有 NodeJS 的 Babel 不工作传播运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56900902/