Angular CLI - 为什么 <ng serve> 捆绑比 <ng build> 更好?

Angular CLI - why does <ng serve> bundle better than <ng build>?

执行一些 Angular CLI 命令以构建缩小的基本项目:

ng new project
cd project
ng build --prod

... 结果,我得到了生成的 dist 文件夹,其中包含许多包。最大的一个叫做 vendor.[hash].js,大小约为 855kB

但是,如果我改为执行 ng serve --prod

ng new project
cd project
ng serve --prod

...我可以使用 Chrome 控制台看到 localhost:4200 供应商的包重量大约 300kB

为什么会这样?有没有办法在没有 ng serve 而使用 ng build 的情况下获得第二个结果?

我在我的环境中对此进行了测试:

ng build --prod = main.[hash].js = 792KB.

bg serve --prod = main.[hash].js = 863KB.

$ ng --version
angular-cli: 1.0.0-beta.19-3
node: 7.0.0
os: win32 x64

ng serve 生成​​的缓存文件稍微小一些,因为是临时的。

更新您的 ng cli 并再次测试。

通过评论发现,您只是比较了两个不同的值:文件系统中非 gzip 压缩文件的大小,以及浏览器控制台中 gzip 压缩下载的大小。

不在于哪个更好

一切都是关于何时使用 buildserve

  1. build 用于部署目的,serve 用于开发目的。
  2. build 将编译后的输出生成到 /dist 目录并 serve 从内存构建工件以获得更快的开发体验。

参考:build vs. serve