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

执行ng serve时遇Module build failed错误:无法读取undefined的'file'属性

执行ng serve时的Angular编译失败问题排查

错误日志

执行ng serve时出现以下编译错误:

./node_modules/@angular/common/fesm2022/common.mjs - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/tools/babel/webpack-loader.js):
TypeError: C:\Users\sheil\Desktop\Temp\angular-tut\node_modules\@angular\common\fesm2022\common.mjs: Cannot read properties of undefined (reading 'file')

./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/tools/babel/webpack-loader.js):
TypeError: C:\Users\sheil\Desktop\Temp\angular-tut\node_modules\@angular\platform-browser\fesm2022\platform-browser.mjs: Cannot read properties of undefined (reading 'file')

./node_modules/@angular/router/fesm2022/router.mjs - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/tools/babel/webpack-loader.js):
TypeError: C:\Users\sheil\Desktop\Temp\angular-tut\node_modules\@angular\router\fesm2022\router.mjs: Cannot read properties of undefined (reading 'file')


** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **


× Failed to compile.

项目package.json配置

{
  "name": "angular-tut",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^16.1.0",
    "@angular/common": "^16.1.0",
    "@angular/compiler": "^16.1.0",
    "@angular/core": "^16.1.0",
    "@angular/forms": "^16.1.0",
    "@angular/platform-browser": "^16.1.0",
    "@angular/platform-browser-dynamic": "^16.1.0",
    "@angular/router": "^16.1.0",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.13.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^16.1.3",
    "@angular/cli": "~16.1.3",
    "@angular/compiler-cli": "^16.1.0",
    "@types/jasmine": "~4.3.0",
    "jasmine-core": "~4.6.0",
    "karma": "~6.4.0",
    "karma-chrome-launcher": "~3.2.0",
    "karma-coverage": "~2.2.0",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.1.0",
    "typescript": "~5.1.3"
  }
}

原因分析

该错误属于babel-loader处理Angular ESM模块时的未定义属性读取异常,常见诱因:

  • 项目依赖缓存损坏,导致@angular-devkit/build-angular的Babel相关组件无法正常加载
  • 本地存在自定义Babel配置文件(如.babelrc、babel.config.json),与Angular内置配置冲突
  • 依赖版本存在细微偏差(虽当前配置整体兼容,但不排除安装过程中出现的版本不一致)

解决方法

1. 清理缓存并重新安装依赖

这是最直接的修复手段:

  • Windows系统:
    del package-lock.json
    rmdir /s /q node_modules
    npm install
    
  • Mac/Linux系统:
    rm -rf node_modules package-lock.json
    npm install
    

2. 禁用构建缓存启动服务

临时绕过缓存文件的影响:

ng serve --no-cache

3. 移除自定义Babel配置

如果项目根目录存在.babelrc或babel.config.json文件,直接删除后重新执行ng serve。

4. 对齐Angular核心包与构建工具版本

将@angular-devkit/build-angular和@angular/cli版本调整为与Angular核心包完全一致,修改package.json的devDependencies部分:

"@angular-devkit/build-angular": "^16.1.0",
"@angular/cli": "~16.1.0"

修改后重新执行依赖安装命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:24:58