我有一个简单的应用程序,由 angular-cli
初始化。
它显示相对于3个路由的一些页面。我有三个组成部分。在这个页面中,我使用 lodash
和 Angular 2 HTTP 模块来获取一些数据(使用 RxJS Observable
、 map
和 subscribe
)。我使用一个简单的 *ngFor
来显示这些元素。
但是,尽管事实上我的应用程序真的很简单,我得到了一个巨大的(在我看来)捆绑包和地图。不过我不会谈论 gzip 版本,而是在 gzip 之前讨论大小。这个问题只是一般性的推荐问询。
一些测试结果:
建造
Hash: 8efac7d6208adb8641c1 Time: 10129ms block {0} main.bundle.js, Map (main)18.7 kB {3}[初始][呈现]
块{1} styles.bundle.css,styles.bundle.map,styles.bundle.map (样式)155kB {4}[初始][渲染]
大块{2} scripts.bundle.js,scripts.bundle.map (script)128kB {4}[初始][渲染]
块{3} vendor.bundle.js,vendor.bundle.map (卖方)3.96 MB [首字母][渲染]
块{4} inline.bundle.js,inline.bundle.map (inline)0字节 [进入][渲染]
等等: 10Mb 的供应商捆绑包这样一个简单的应用程序?
生产,刺激
Hash: 09a5f095e33b2980e7cc Time: 23455ms block {0} 主编6273 b0f04a07a1c2ad6c.bundle.js, 6273 b0f04a07a1c2ad6c.bundle.map (main)18.3 kB {3}[初始] [翻译]
块{1} styles.bfdaa4d8a4eb2d0cb019.bundle.css, Bfdaa4d8a4eb2d0cb019.bundle.map, Map (style)154 kB {4}[初始] [翻译]
块{2} scripts.c5b720a078e5464ec211.bundle.js, (脚本)128kB {4}[初始值] [翻译]
大块{3}供应商.07 af2467307e17d85438.bundle.js, 厂商.07 af2467307e17d85438.bundle.map (厂商)3.96 MB [初始] [翻译]
块{4} inline.a345391d459797f81820.bundle.js, A 345391d459797f81820.bundle.map (inline)0 byte [ entry ] [翻译]
再等一下: 这样一个类似的供应商捆绑大小的产品?
ng build --prod --aot
哈希: 517e4425ff872bbe3e5b 时间: 22856ms 块{0} 95 eadabace554e3c2b43.bundle.js, 95 eadabace554e3c2b43.bundle.map (main)130 kB {3}[初始] [翻译]
块{1} styles.e53a388ae1dd2b7f5434.bundle.css, B7f5434.bundle.map, Map (style)154 kB {4}[初始] [翻译]
块{2} scripts.e5c2c90547f3168a7564.bundle.js, 地图(脚本)128kB {4}[初始] [翻译]
块{3}供应商.41 a6c1f57136df286f14.bundle.js, 厂商41 a6c1f57136df286f14.bundle.map (厂商)2.75 MB [初始] [翻译]
块{4}内联.97 c0403c57a46c6a7920.bundle.js, Map (inline)0 byte [ entry ]97 c0403c57a46c6a7920.bundle.map (inline)0 byte [ entry ] [翻译]
ng build --aot
哈希: 040cc91df4df5ffc3c3f 时间: 11011ms 块{0} main.bundle.js, Map (main)130kB {3}[初始][呈现]
块{1} styles.bundle.css,styles.bundle.map,styles.bundle.map (样式)155kB {4}[初始][渲染]
大块{2} scripts.bundle.js,scripts.bundle.map (script)128kB {4}[初始][渲染]
大块{3} vendor.bundle.js,vendor.bundle.map (卖方)2.75 MB [首字母][渲染]
块{4} inline.bundle.js,inline.bundle.map (inline)0字节 [进入][渲染]
所以,关于如何部署我的应用程序,我有几个问题:
angular-cli
是否正确地使用摇树法?angular-cli
(在后台使用 Webpack)不是最佳选择?我们能做得更好吗?我搜索了很多关于 Stack Overflow 的讨论,但是没有找到任何一般性的问题。