You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 10升级至13后执行ng serve报编译错误求助

Angular 10升级到13后ng serve编译错误解决方案

问题分析

报错Left side of comma operator is unused and has no side effects出现在!(0, fs_1.existsSync)(startPath)代码中,这种(0, fn)的写法是CommonJS转ES模块时用来修正this指向的语法,但Angular 13默认启用的严格TypeScript检查(noUnusedExpressions规则)会将其判定为无效表达式。

解决方案

1. 临时关闭未使用表达式检查

在tsconfig.json的compilerOptions中添加或修改noUnusedExpressions配置:

"compilerOptions": {
  // 原有配置...
  "noUnusedExpressions": false
}

如果你的配置中启用了strict: true,可以单独覆盖该规则:

"compilerOptions": {
  // 原有配置...
  "strict": true,
  "noUnusedExpressions": false
}

2. 升级第三方依赖

检查项目中的第三方依赖,尤其是涉及文件操作(如fs相关)的包,确保它们兼容Angular 13。运行以下命令查看过时依赖:

npm outdated

将所有不兼容的依赖升级到最新版本,避免依赖代码中的旧语法触发TS检查。

3. 调整TypeScript编译目标与模块配置

Angular 13推荐使用更现代的编译配置,修改tsconfig.json中的以下选项:

"compilerOptions": {
  // 原有配置...
  "target": "es2020",
  "module": "es2020",
  "lib": [
    "es2020",
    "dom",
    "esnext.asynciterable"
  ]
}

现代ES模块语法无需依赖(0, fn)这类兼容写法,可从根源避免该错误。

4. 修正tsconfig中的冗余配置

你的paths配置中rxjs路径重复,修正为:

"paths": {
  "@angular/*": ["node_modules/@angular/*"],
  "rxjs": ["node_modules/rxjs"]
}

内容的提问来源于stack exchange,提问作者Gajanan Bele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:55:00