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 压缩下载的大小。
不在于哪个更好
一切都是关于何时使用 build 或 serve。
- build 用于部署目的,serve 用于开发目的。
- build 将编译后的输出生成到 /dist 目录并 serve 从内存构建工件以获得更快的开发体验。
执行一些 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 压缩下载的大小。
不在于哪个更好
一切都是关于何时使用 build 或 serve。
- build 用于部署目的,serve 用于开发目的。
- build 将编译后的输出生成到 /dist 目录并 serve 从内存构建工件以获得更快的开发体验。