Angular 9:为什么整个rxjs库都进入构建包?

Angular 9:为什么整个rxjs库都进入构建包?,angular,build,rxjs,size,bundle,Angular,Build,Rxjs,Size,Bundle,如果我用angular 9.1.1创建一个空的基础项目并构建它,那么整个rxjs将出现在最终的包中 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/pl

如果我用angular 9.1.1创建一个空的基础项目并构建它,那么整个rxjs将出现在最终的包中

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,这似乎不正常

只要看一下文件名,我就可以看出您并没有使用生产版本构建应用程序(除非您使用
--output hashing none
禁用了输出哈希)

使用
--prod
标志设置生产内置Angular,或通过
Angular.json
文件配置进行设置。当你为生产而构建应用程序时,它也会改变未使用的第三个库函数,比如rx操作符

除此之外,我强烈建议您使用
源地图管理器
,而不要使用webpack捆绑工具

运行以下两个命令:

ng build--prod--source map


npx源地图资源管理器dist/APP_NAME/main-es2015.*.js

您正在构建,但没有--prod flag和tree shacking。问题在于webpack bundle analyzer,它说在我的prod bundle中,rxjs的大小是70kb,而实际上,正如源地图资源管理器所示,它只有24kb。谢谢