Angular 5运行ng serve遇编译错误:大小写差异与TS文件未编译问题
解决Angular 5 + Angular CLI的两类编译错误
嘿,我来帮你搞定这两个开发中常见的Angular编译坑,咱们逐个解决:
一、webpack因大小写差异编译失败
这个问题本质是Windows文件系统不区分大小写,但webpack的模块解析是严格区分大小写的——比如你导入时写了import { ... } from './assign-search/xxx',但实际文件夹是Assign-search,或者文件名大小写不匹配,就会触发这个错误。
解决步骤:
- 全局检查所有组件、服务的导入语句,确保路径的大小写和实际文件/文件夹的完全一致,比如文件夹叫
Assign-search,导入时就必须写./Assign-search/...,不能混写大小写 - 如果你用Git管理代码,建议开启大小写敏感检查,避免后续提交时出现大小写不一致的问题,在项目根目录运行:
git config core.ignorecase false - 重启
ng serve,有时候webpack的缓存会残留旧的解析记录,重启能彻底刷新
二、TypeScript编译提示文件未纳入配置
看你的错误信息,首先有个明显的问题:服务文件名里有空格(Assign service.service.ts),TypeScript和webpack对带空格的文件名处理很容易出问题,这大概率是诱因之一,再结合tsconfig的配置问题,就触发了这个报错。
解决步骤:
- 先修复文件名:把
Assign service.service.ts改成符合规范的命名,比如AssignService.service.ts或者assign-service.service.ts,同时更新所有导入这个服务的组件/模块里的路径,确保大小写和文件名完全匹配 - 检查tsconfig.json配置:打开项目根目录的
tsconfig.json,确保include数组包含了src/**/*,这样所有src目录下的TypeScript文件都会被自动纳入编译:
如果你的配置里用了{ "compilerOptions": { // 你的编译配置 }, "include": [ "src/**/*" ] }files数组指定具体文件,也要把这个服务文件的路径加进去,但更推荐用include覆盖整个src目录,更省心 - 清理缓存并重启:运行
ng clean清理Angular CLI的缓存(如果是旧版CLI,手动删除node_modules/.cache文件夹),然后重新启动ng serve
内容的提问来源于stack exchange,提问作者Tom Stickel
相关产品推荐
相关产品推荐

