NX构建Angular项目时styles.scss被输出为.js文件问题求助
问题解决思路
- 首先确认构建场景:你当前配置仅在
production构建配置中开启了extractCss: true,默认开发构建(不带--prod参数)未开启CSS提取,样式会被打包到JS文件中输出。如果需要开发构建也输出独立CSS文件,在architect.build.options下新增"extractCss": true配置即可。 - 修正错误的资源路径:
architect.test.options下的styles、assets路径配置错误,当前写的是相对根目录不存在的src/styles/styles.scss,需要统一修改为和build配置一致的前缀apps/LSApp/,路径错误会导致样式文件解析逻辑异常,甚至触发错误的编译链路。 - 修正angular.json的schematics配置:当前根
schematics字段下多嵌套了一层schematics字段,导致@schematics/angular:component.styleext配置不生效,建议将该配置提至根schematics下和其他配置平级,保证scss文件后缀被正确识别。 - 对齐依赖版本:你当前使用的
@angular/cli版本为8.3.19,但NX相关依赖@nrwl/angular、@nrwl/cli、@nrwl/workspace版本为8.2.0,跨小版本的兼容问题可能导致构建链路异常,建议将NX相关依赖升级到匹配Angular CLI的8.3.x版本。 - 排查自定义构建配置:如果项目存在自定义webpack配置、NX自定义构建器配置,请检查样式处理规则是否存在错误,比如将
.scss文件匹配到JS处理loader的情况。 - 清理缓存重试:先执行
npm run clean:dist删除构建产物,再删除node_modules、package-lock.json后重新安装依赖,避免缓存导致的编译异常。
内容的提问来源于stack exchange,提问作者Nicole Phillips
相关产品推荐
相关产品推荐

