我在Babel构建用于生产的角度应用程序时遇到问题


15

当前行为我正在circleci上构建我的角度项目,但它始终失败并显示以下消息:发生未处理的异常:找不到模块'@ babel / compat-data / corejs3-shipped-proposals'

需要堆栈:

/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/lib/polyfills/corejs3/usage-plugin.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/lib/index.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/core/lib/config/files/plugins.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/core/lib/config/files/index.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/core/lib/index.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/src/utils/process-bundle.js
/home/circleci/eleven-app/frontend/node_modules/jest-worker/build/workers/processChild.js

我在用

{
  "@babel/plugin-proposal-numeric-separator": "^7.8.3",
  "core-js": "3.2.1",
  "tslib": "^1.11.1",
  "@babel/compat-data": "~7.8.0",
  "@babel/runtime-corejs3": "^7.9.2",
  "ts-node": "7.0.0",
  "tslint": "5.11.0",
  "typescript": "3.5.3",
}
resolutions: {
  "@babel/preset-env": "^7.8.7"
}

这是npx nls为什么@ babel / preset-env输出:

eleven-app-frontend > @angular-devkit/build-angular > @babel/preset-env@7.8.7
eleven-app-frontend > @nrwl/angular > @nrwl/cypress > @cypress/webpack-preprocessor > @babel/preset-env@7.9.5
eleven-app-frontend > @nrwl/cypress > @cypress/webpack-preprocessor > @babel/preset-env@7.9.5

感谢您的阅读。

Answers:


6

今天有同样的问题,所以我认为最新版本有些奇怪。

我的package.json具有以下内容:

"@babel/compat-data": "~7.9.0"

我删除了〜强制7.9.0而不是允许更新的〜,它为我成功了。

可能有一个更新的版本可以使用,但是由于您为它们打开了一个问题(https://github.com/babel/babel/issues/11427),我将等待更多详细信息。


1
我正在研究同一问题,这很奇怪,因为该库也@babel/runtime-corejs3未在几周内发布
alex88

1
我尝试过,但仍然对我不起作用
Farid Garciayala

1
@FaridGarciayala在我的情况下,我必须声明并使用7.9.0来解决问题
alex88

@FaridGarciayala,它应该可以工作(7.8 / 7.9),但是尝试在此之前删除“ node_modules”
Bruno Wolff,

今天同样的问题。问题仅在构建服务器中,而在本地不进行
全新

5

将TravisCI&Vue与Jest和Babel一起使用时,我遇到同样的问题。我的测试服失败了。添加"@babel/compat-data": "7.9.0"devDependencies在我的package.json文件解决了我的问题。


谢谢。这帮助我修复了在CI上失败的测试套件。
Miroslav Jonas

4

到目前为止,我们提出了以下三个选项:

  • 使babel / preset-env的依赖项适应v7.9.0: "@babel/preset-env": "=7.9.0"
  • 如果您使用NodeJS Docker映像,请将版本修复为低于13.13,即: node:13.12.0-alpine
  • 添加或升级"@babel/compat-data": "7.9.0"到devDependencies

解决方案是暂时的,应在实际修复节点映像或babel / preset-env库后将其删除。

链接的Github问题:

babel- https://github.com/babel/babel/issues/11427

nodejs- https://github.com/nodejs/node/issues/32852#issuecomment-613652057


2

我今天在Vue FE项目的Github Actions构建中遇到了同样的问题。它在本地构建良好。我将尝试上述解决方案,我将向您举报...

更新:浏览完包锁定文件后,我的解决方案是将“ @ babel / compat-data”显式添加到prod依赖项中。以前,它只是某些开发依赖项的依赖项。所以我的package.json现在看起来像:

"dependencies": {
  "@babel/compat-data": "^7.8.6",
  ...

1

同样的问题。通过遵循上述建议+删除node_modules(请参见此github线程)解决了该问题

  • 显式添加@babel/compat-data": "7.9.0"到devDependencies
  • 升级的节点(本例中为13.3到14.0)
  • 必须删除我的node_modules文件夹并重新运行yarn(或npm)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.