角度9:为什么整个rxjs lib都进入构建包?

问题描述 投票:0回答:1

如果我创建一个带有角9.1.1的空基础项目并进行构建,则整个rxjs将出现在最终的包中。

webpack-bundle analyzer screenshot

package.json是基本的:

  "dependencies": {
"@angular/animations": "~9.1.1",
"@angular/common": "~9.1.1",
"@angular/compiler": "~9.1.1",
"@angular/core": "~9.1.1",
"@angular/forms": "~9.1.1",
"@angular/platform-browser": "~9.1.1",
"@angular/platform-browser-dynamic": "~9.1.1",
"rxjs": "~6.5.5",
"tslib": "^1.11.1",
"zone.js": "~0.10.3"

},

这正常吗?使用--prod标志进行构建时,rxjs的大小为70kb,这似乎不正常。

angular build rxjs size bundle
1个回答
1
投票

仅查看您的文件名,我可以看到您没有使用生产版本构建应用程序(除非您使用--output-hashing none禁用了输出哈希)。

在Angular中的生产版本是通过--prod标志设置的,或者是通过angular.json文件配置设置的。当您构建用于生产的应用程序时,还会摇晃未使用的第三库函数(如rx运算符)。

此外,我强烈建议您使用source-map-explorer,而不要使用Webpack捆绑工具。

运行这两个命令:

ng build --prod --source-maps

npx source-map-explorer dist/APP_NAME/main-es2015.*.js

© www.soinside.com 2019 - 2024. All rights reserved.