liusaint 2018-06-28
一个基于vue-cli webpack2模板创建的项目.项目中使用到了vue+vue-router+axios+muse-ui+iview
现在构建一次需要的时间大概是40s左右.真心受不了.虽然在开发过程中,我们不太需要关心构建时间.但是如果在开发hybridApp时,构建的次数就会增多.
一般我们可以把项目分为三部分.
分类 | 说明 | 变动频率 |
---|---|---|
vendor_library | 核心库 | 低 |
vendor | 一般项目依赖 | 中等 |
code | 业务逻辑 | 高 |
vendor_library:比如vue,vue-router,axios 这些变动频率极低的文件可以利用 DllPlugin 和 DllReferencePlugin 进行预编译.
vendor,code在开发阶段,每次构建都需要编译.但是一旦完成该次开发任务,应该调整vendor 是否加入vendor_library.
BundleAnalyzerPlugin 的插件使用
BundleAnalyzerPlugin 是分析 Webpack 生成的包体组成并且以可视化的方式反馈给开发者的插件。
vue已经默认集成了该插件. 如果你运行 npm run build Creport.就能看到当前项目的依赖情况.然后做出相应调整.
优化方向
按需加载
muse-ui,iview 都提供了按需加载的方式,按照文档调整即可.
分类 | 耗时 | muse-ui | iview |
---|---|---|---|
before | 13256ms | 234KB | 337KB |
after | 43211ms | 79KB | 75KB |
先看结果...你没看错,'优化后',时间竟然变长了...