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

Far*_*ala 26 babeljs angular

当前行为我正在 circleci 上构建我的 angular 项目,但它一直失败并显示以下消息:发生未处理的异常:找不到模块“@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
Run Code Online (Sandbox Code Playgroud)

我在用

{
  "@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"
}
Run Code Online (Sandbox Code Playgroud)

这是 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
Run Code Online (Sandbox Code Playgroud)

感谢您的阅读。

Bru*_*lff 10

今天遇到了同样的问题,所以我假设最新版本有些奇怪。

我的 package.json 有以下内容:

"@babel/compat-data": "~7.9.0"
Run Code Online (Sandbox Code Playgroud)

我删除了 ~ 以强制使用 7.9.0 而不是允许更新的版本,它对我有用。

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

  • 今天同样的问题。问题仅存在于构建服务器中,而不存在于本地全新安装中...... (2认同)

小智 8

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


zer*_*ewl 8

到目前为止,我们提出了这 3 个选项:

  • 将 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 问题:

巴别塔 - https://github.com/babel/babel/issues/11427

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