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

解决NX Monorepo库(非应用)中‘bundle initial超出预算上限’警告

问题解答

问题原因

你遇到的'budgets' is not found in schema报错,核心原因是Angular库与应用使用的构建执行器不兼容:

  • 你的Angular库使用的是@nx/angular:package执行器(底层基于ng-packagr),这个执行器的配置规范里并没有budgets选项,所以强行添加会触发schema校验错误。
  • 而Monorepo中的Angular应用使用的是@nx/angular:browser执行器,该执行器的配置原生支持budgets,因此添加后不会报错。

针对两类警告的解决方法

1. 单个组件SCSS文件的预算警告

这类警告是Angular编译器对单个样式文件的大小限制,你可以在对应库的tsconfig.lib.json(或生产环境的tsconfig.lib.prod.json)中,通过angularCompilerOptions调整阈值:

{
  "angularCompilerOptions": {
    // 保留原有配置
    "styleBudget": {
      "maximumWarning": "4kb", // 按需调整单个SCSS文件的警告阈值
      "maximumError": "8kb"    // 按需调整单个SCSS文件的错误阈值
    }
  }
}

2. 初始包大小的预算警告

这个警告是针对整个应用的初始加载包,而非单个库的输出包——因为库最终是被应用引入打包的,所以你需要在**应用的project.json**中调整budgets配置:

{
  "targets": {
    "build": {
      "executor": "@nx/angular:browser",
      // 其他配置...
      "configurations": {
        "production": {
          // 其他配置...
          "budgets": [
            {
              "type": "initial",
              "maximumWarning": "1.5mb",
              "maximumError": "2mb"
            }
          ]
        }
      }
    }
  }
}

如果需要单独限制单个库的输出包大小,可以借助NX的@nx/workspace:run-commands执行器,配合size-limit这类工具实现自定义的包大小校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:12:33