Angular构建时出现“The service is no longer running”错误求助
Angular构建时出现“The service is no longer running”错误求助
问题描述
我在构建Angular项目时反复遇到致命错误,提示:
An unhandled exception occurred: The service is no longer running
详细错误日志如下:
[error] HookWebpackError: The service is no longer running at makeWebpackError (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\webpack\lib\HookWebpackError.js:48:9) at C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\webpack\lib\Compilation.js:3060:12 at eval (eval at create (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:115:1) -- inner error -- Error: The service is no longer running at C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\esbuild\lib\main.js:822:29 at sendRequest (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\esbuild\lib\main.js:697:14) at start (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\esbuild\lib\main.js:820:9) at Object.transform2 [as transform] (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\esbuild\lib\main.js:879:5) at C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\esbuild\lib\main.js:2157:55 at new Promise (<anonymous>) at Object.transform (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\esbuild\lib\main.js:2157:14) at EsbuildExecutor.transform [as esbuildTransform] (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\esbuild\lib\main.js:1980:62) at EsbuildExecutor.transform (C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\@angular-devkit\build-angular\src\webpack\plugins\esbuild-executor.js:113:21) at async C:\Users\w_h20\OneDrive\Bureau\Raboto\ApplicationDevis\SPA Client\Devis\node_modules\@angular-devkit\build-angular\src\webpack\plugins\css-optimizer-plugin.js:70:53
目前ng serve可以正常运行,但ng build完全失效。我已经尝试过卸载/降级Node.js和Angular CLI版本,但都没有解决问题。当前环境版本:
- NodeJS: 16.16.0
- Angular CLI: 15.1.16
解决方案建议
从错误栈能看出,问题根源是esbuild服务意外退出(Angular 15+默认用esbuild做代码优化),试试下面这些针对性的解决方法:
彻底清理依赖与缓存
先删除旧的依赖文件和npm缓存,重新安装依赖,避免缓存损坏导致的问题:# macOS/Linux rm -rf node_modules package-lock.json yarn.lock npm cache clean --force npm install# Windows Remove-Item -Recurse -Force node_modules, package-lock.json, yarn.lock npm cache clean --force npm install禁用esbuild构建缓存
在angular.json的build配置中添加cache: false,强制禁用esbuild的缓存机制:"architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "cache": false, // 保留其他原有配置 } } }锁定兼容的esbuild版本
Angular 15.1.x和部分esbuild版本存在兼容性问题,手动安装一个经过验证的稳定版本:npm install esbuild@0.17.19 --save-dev排查系统安全软件干扰
本地杀毒软件或防火墙可能误杀esbuild的后台进程,试试临时关闭安全软件,或者把项目目录加入安全软件的白名单后再执行ng build。调整项目路径
你的项目路径包含空格(SPA Client),Windows系统下这类路径可能导致esbuild服务启动失败,建议把项目迁移到无空格、无特殊字符的路径下,比如C:\Projects\Devis。
备注:内容来源于stack exchange,提问作者Hamid Elouardaoui
相关产品推荐
相关产品推荐

