从Angular迁移到NativeScript时出现main.tns.ts未纳入编译报错
排查解决步骤
- 确认webpack配置指向正确的ts配置文件
打开项目根目录的webpack.config.js,找到@ngtools/webpack对应的编译配置,检查tsConfigPath参数是否配置为./tsconfig.tns.json,如果默认指向的是tsconfig.json,修改为tns专属配置路径即可。 - 检查父tsconfig的exclude规则
打开根目录tsconfig.json,查看exclude字段是否包含*.tns.ts或者src/main.tns.ts的匹配规则。extends继承的子配置不会覆盖父配置的exclude规则,父配置排除的文件就算子配置的files字段声明也不会生效。你可以在tsconfig.tns.json里添加"exclude": []字段覆盖父配置的排除规则,或者从父配置的exclude列表中移除tns相关文件的匹配项。 - 清理全量缓存重试
执行以下命令清理历史缓存、依赖和平台文件后重新运行:
rm -rf node_modules platforms hooks package-lock.json yarn.lock npm install tns run android --bundle --clean
- 校验文件路径大小写
Linux等大小写敏感的系统下,要确认src/main.tns.ts的实际文件名、路径大小写和配置中完全一致,没有拼写错误。 - 确认版本兼容性
如果你使用的是Angular 12及以上版本的Ivy编译模式,需要保证@nativescript/angular包的大版本和当前Angular版本匹配,版本不兼容会导致ts配置读取逻辑异常。
内容的提问来源于stack exchange,提问作者Waru
相关产品推荐
相关产品推荐

