Angular 角度预算抛出错误,但文件未达到大小

Angular 角度预算抛出错误,但文件未达到大小,angular,Angular,在Angular 8的Angular.json文件中,我为生产设置了初始预算: "production": { "optimization": true, "outputHashing": "all", "sourceMap": false, "extractCss": true, "namedChunks": false, "aot": true, "extractLicenses": true, "vendorChunk": t

在Angular 8的
Angular.json
文件中,我为生产设置了
初始
预算:

"production": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": true,
    "vendorChunk": true,
    "buildOptimizer": true,
    "fileReplacements": [{
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.prod.ts"
    }],
    "budgets": [{
        "type": "initial",
        "maximumWarning": "1.5mb",
        "maximumError": "1.6mb"
    }],
    "serviceWorker": true
}
当我运行
ng build--prod
时,输出错误:

但是,标记为
initial
的所有文件均未达到所述文件大小,无论是单独还是一起:

发生了什么事?为什么会抛出此错误?

注意1:删除预算并运行完全相同的命令后,将生成文件,否则不会生成这些文件

注2:生成的文件似乎重复,但这是Angular 8的差异加载(
es5
/
es2015


注3:生成的文件在大小上甚至与控制台输出不匹配。

AFAIK预算以初始Bundle大小为目标,这意味着它统计所有标记的文件,而不是每个单独的文件,这是有意义的

当指定“初始”时,它是捆绑大小而不是单个文件的大小。这很有意义,因为正如您所看到的,初始捆绑包中至少有6个文件,如果它们
1.6MB
,每个用户可能都会对加载时间“着迷”

所以,这里你至少有两个选择

首先-减少捆绑的大小。1.5MB供应商规模的缩小是难以置信的巨大(IMHO)

第二,增加预算。过去它的容量约为3MB


您可以参考预算类型。

这是旧版本CLI中的一个错误。请参阅由解决的问题。如果启用了优化,则会在优化后计算包大小。

问题是,当包文件大小与预算相差甚远时,为什么会超出预算。(“标记为initial的文件没有一个达到所提到的文件大小,无论是单独的还是一起的”)检查控制台输出,就可以得到数字。为什么实际输出不同是出于如此关注。如果它真的不同,那么它必须在GitHub上的“问题”中。但是,如果我是你,我会仔细检查我是否查看了正确的文件夹,并且数据是最新的(刷新文件夹)。而且它
KB
!=<代码>kB。这是不同的测量系统,还有一件事要提。关于问题的“年龄”,值得考虑将项目更新到最新版本的框架,因为这一特定情况可能会有变化。不,为什么输出不同是问题,而不是“出于担心”。如果是一个bug,那么答案应该是“这是一个bug”。谢谢Alan!这应该是公认的答案。一旦我的帖子不被接受,我将删除它。