Angular项目执行ng serve/ng build时模块构建失败求助
Angular 16执行
ng serve/ng build时报错:Cannot read properties of undefined (reading 'file') 问题详情
执行ng serve或ng build时出现以下错误:
✔ Browser application bundle generation complete. Initial Chunk Files | Names | Raw Size vendor.js | vendor | 1.50 MB | polyfills.js | polyfills | 333.15 kB | styles.css, styles.js | styles | 230.44 kB | main.js | main | 48.01 kB | runtime.js | runtime | 6.51 kB | | Initial Total | 2.10 MB Build at: 2023-07-06T11:49:42.899Z - Hash: 98295fb6be6a8b7e - Time: 1608ms ./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: /Users/user1/Projects/Angular Projects/ng-test/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: /Users/user1/Projects/Angular Projects/ng-test/node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs: Cannot read properties of undefined (reading 'file') ** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
项目package.json内容:
{ "name": "ng-test", "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" } }
已尝试删除node_modules和package-lock.json后重新npm install,问题未解决。
解决方案
1. 彻底清理缓存并重装依赖
执行以下命令(Windows用户将rm -rf替换为rd /s /q):
npm cache clean --force rm -rf node_modules package-lock.json npm install
2. 降级@angular-devkit/build-angular版本
16.1.3版本可能存在兼容性问题,尝试降级到16.1.2:
npm install @angular-devkit/build-angular@16.1.2 --save-dev
3. 验证Node.js版本兼容性
Angular 16要求Node.js版本为16.14.0+或18.x.x,检查当前版本:
node -v
若版本不兼容,升级或降级到符合要求的版本后重新安装依赖。
4. 换用Yarn安装依赖
若npm安装存在缓存或依赖解析问题,尝试使用Yarn:
rm -rf node_modules package-lock.json yarn install yarn start
5. 排查全局Angular CLI版本冲突
全局CLI版本与项目本地版本不一致可能引发问题,先查看全局版本:
ng --version
若全局版本与项目的16.1.x不符,卸载全局CLI并重装对应版本:
npm uninstall -g @angular/cli npm install -g @angular/cli@16.1.3
内容的提问来源于stack exchange,提问作者Osama Javiş
相关产品推荐
相关产品推荐

