You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nx可发布样式库执行build命令未包含SCSS文件如何解决?

错误原因

你遇到的报错是因为Nx Angular类型库默认使用的@nrwl/angular:package(底层基于ng-packagr)构建器的schema本身不支持stylePreprocessorOptions、styles这类配置,这些配置仅适用于应用类型项目使用的应用构建器,和官方文档的说明并不冲突,官方文档中对应的配置说明覆盖了工作区所有类型的构建器,不同构建器支持的配置字段本身存在差异。

无webpack的解决方案

方案1:仅发布SCSS源码(下游自行编译)

直接在库的构建配置(angular.json或project.json中project/{{lib-project}}/architect/build/options节点)添加ng-packagr支持的assets配置,将SCSS源文件直接复制到dist目录:

"assets": [
  "src/style-paths",
  // 其他存放SCSS文件的目录按需添加
  "src/styles"
]

配置完成后执行nx build {{lib-project}},对应SCSS文件会被完整复制到dist目录下,可直接发布。

方案2:预编译CSS+附带SCSS源码同时发布

如果需要提前编译好CSS供下游直接使用,可通过Nx内置的执行器新增SCSS编译流程,无需引入webpack:

  1. 在库的构建配置中新增compile-scss执行节点:
"compile-scss": {
  "executor": "@nrwl/workspace:run-commands",
  "options": {
    "command": "sass src/styles:dist/{{lib-project}}/styles --style compressed --load-path src/style-paths"
  }
}
  1. 修改原有build节点配置,添加前置依赖:
"build": {
  "executor": "@nrwl/angular:package",
  "dependsOn": ["compile-scss"],
  // 保留原有其他配置不变
  "options": {
    "assets": [
      "src/style-paths",
      "src/styles"
    ],
    // 其他原有配置
  }
}
  1. 在库根目录的package.json中配置样式入口,方便下游引用:
{
  "style": "styles/index.css",
  "scss": "styles/index.scss",
  "exports": {
    "./styles": "./styles/index.css",
    "./scss": "./styles/index.scss"
    // 其他需要暴露的样式路径可按需新增
  }
}

配置完成后执行nx build {{lib-project}},会自动完成SCSS编译、文件拷贝、打包全流程,生成的dist目录产物可直接发布到npm。

内容的提问来源于stack exchange,提问作者Bren Gunning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:45:08