ng serve运行时修改ts文件dist下main.js不更新但ng build正常如何排查
Angular ng serve 不更新dist目录排查指南
核心逻辑说明
ng serve为开发场景优化,默认采用内存编译模式,所有构建产物仅存储在运行内存中供开发服务器调用,不会写入本地磁盘的dist目录,这和ng build默认输出产物到磁盘的设计不同,不属于默认行为异常。
需排查的配置/原因列表
- 检查
angular.json中项目serve配置的writeToDisk参数
如果需要ng serve同步输出产物到磁盘dist目录,需要手动开启该配置,默认值为false。修改示例如下:{ "projects": { "你的项目名": { "architect": { "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "writeToDisk": true, // 保留其他原有serve配置 } } } } } } - 校验
outputPath路径一致性
确认angular.json中build配置块的outputPath参数指向的目录,和你实际检查的dist目录路径完全一致,避免错看旧的输出目录 - 排查构建缓存异常
查看angular.json中cli.cache.enabled配置,临时设置为false关闭缓存后重启ng serve,验证是否是缓存逻辑导致的产物更新异常 - 排查自定义构建插件干扰
如果项目接入了custom-webpack、自定义构建器等扩展逻辑,检查插件是否对ng serve场景的产物输出做了拦截过滤 - 检查目录写入权限
确认运行ng serve的系统进程对dist目录有读写权限,权限不足会导致静默写入失败,控制台不会抛出明确错误
内容的提问来源于stack exchange,提问作者Dennis
相关产品推荐
相关产品推荐

