【问题标题】:@babel/types build errors on ng build command in Angular 8.2.14@babel/types Angular 8.2.14 中 ng build 命令的构建错误
【发布时间】:2022-01-17 11:13:26
【问题描述】:

当我为我的 Angular 应用程序运行命令“ng build”时出现以下错误。

ERROR in ../node_modules/@types/babel-types/index.d.ts:1769:96 - error TS1144: '{' or ';' expected.

1769 export function assertArrayExpression(node: object | null | undefined, opts?: object): asserts node is ArrayExpression;
                                                                                                    ~~~~
../node_modules/@types/babel-types/index.d.ts:1769:101 - error TS1005: ';' expected.

1769 export function assertArrayExpression(node: object | null | undefined, opts?: object): asserts node is ArrayExpression;
                                                                                                         ~~
../node_modules/@types/babel-types/index.d.ts:1769:104 - error TS1005: ';' expected.

1769 export function assertArrayExpression(node: object | null | undefined, opts?: object): asserts node is ArrayExpression;
                                                                                                            ~~~~~~~~~~~~~~~
../node_modules/@types/babel-types/index.d.ts:1770:101 - error TS1144: '{' or ';' expected.

1770 export function assertAssignmentExpression(node: object | null | undefined, opts?: object): asserts node is AssignmentExpression;
                                                                                                         ~~~~
../node_modules/@types/babel-types/index.d.ts:1770:106 - error TS1005: ';' expected.

1770 export function assertAssignmentExpression(node: object | null | undefined, opts?: object): asserts node is AssignmentExpression;

这是我的 Angular 和 Node js 版本信息:

Angular CLI: 8.3.29

Node: 16.13.1

OS: win32 x64

Angular: 8.2.14

npm 8.1.2

以前,我使用的是 Node 12,它正在成功构建。升级到 Node 16 后,我遇到了上述问题。

"devDependencies": {
    "@angular-devkit/build-angular": "~0.803.25",
    "@angular/cli": "~8.3.25",
    "@angular/compiler-cli": "~8.2.14",
    "@angular/language-service": "~8.2.14",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "12.7.3",
    "apply-loader": "^2.0.0",
    "codelyzer": "^5.0.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "pug": "^2.0.3",
    "pug-loader": "^2.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.5.3"
  }

我需要升级任何软件包版本吗?或者 Node 16 是否存在兼容性问题

【问题讨论】:

    标签: node.js angular typescript typescript-typings


    【解决方案1】:

    问题在于 Angular v8 有 100 多个依赖项,其中相当一部分与 node v16(或 package-lock.json v2)不兼容。如果你需要升级节点,你最好也升级 angular。

    最好/最简单的方法是在逐步升级节点的同时调整依赖项的升级速度。安装node 14,升级依赖,然后安装v16,再做一遍。

    我还建议您将 npm 降级到 v7,因为 v8+ 会将您的 package-lock.json 升级到 v2。在进行升级时,这会使事情复杂化。 升级依赖项后,您始终可以将 npm 升级到最新版本,然后将 package-lock 升级到 v2。

    前几天我回答了一个类似的问题,它也可能对您有所帮助:https://stackoverflow.com/a/68159069/4604645

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2022-08-03
      • 1970-01-01
      • 2018-11-30
      • 2022-01-13
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 2018-06-20
      相关资源
      最近更新 更多