项目性能优化问题
老师您好!看了本章之后,有以下疑惑
问题描述:
1.文章中提到的,对代码进行分割的处理,或者是路由懒加载,服务器设置gzip这些策略,只是在访问应用时,节省流量提高性能。这个对于webpack本身的打包效率是没有啥作用的吧?
2.我现在负责一个erp的项目,包括一些表单编辑,流程编辑器,第三方模块及项目本身的业务代码文件很多。我打包整个应用需要花费2-3分钟的时间,特别特别的慢。
我用webpack-bundle-analyzer分析打包后的文件,发现parsed这个选项下,总体积有6M这么大。
因为业务需要,element-ui就是全量引入有1M多,此外还有一些比较大的第三方库,有500kb也有700kb的包。用webpack-spead-measure这个插件后,发现vue-loader,eslint-loader和sass-loader耗时有40+s。
2.1针对于上面打包体积的做法,我看网上的做法,都会用externals这个选项把基本不会变更的包通过外链进行加载,例如vue,vue-router,vuex这些,从而不对这些模块打包,从而减少打包的体积缩短打包时间。(PS:这种做法其实对于网页的性能是没有任何优化的吧?单纯的减少了webpack的打包的体积),不知道老师是不是也是这样做的?
2.2另外,关于vue-loader耗时长的问题,这个主要是什么原因造成呢?我看了一些业务组件的体积也是挺大的,是不是需要找到对应的组件一个个排查问题?是不是主要看有没有无用的代码块?排查的方向又是什么呢?
2.3 dll-plugin这个插件是不是只适用于开发环境,生产环境不要使用?
3.我的路由信息是通过后台返回的,在使用路由懒加载的时,引入的文件是拼接的,我怎么做到可以动态设置前面的chunkName(xxx),
```js
import(/* webpackChunkName xxx */ @拼接的信息)
```
比如说,返回了两条信息,一个是user另一个是edior,期望就达到下面的效果
```js
import(/* webpackChunkName user */ @/.../user)
import(/* webpackChunkName editor */ @/.../editor)
```
麻烦老师解答了,谢谢!!
正在回答
同学你好
很好的一系列问题
1 我们这一周讲的是打包后的文件怎样优化 并没有涉及webpack 打包速度的问题。
2.1 使用 extends 主要是讲一些常用的第三方库采用 cdn 的方式进行加载 和我们的将一些常用的第三方库分离出来的思路其实是一样的
2.2 针对 webpack 编译加速的问题,可以选用一些插件来进行编译加速 比如 https://webpack.docschina.org/loaders/thread-loader/ 启动一个 worker pool,还有一个 happypack 完成的是相同的任务 https://github.com/amireh/happypack,这一块内容 我打算在之后使用加餐的形式来给大家提供更详细的一个配置和讲解
2.3 dll plugin 也是提升编译速度的 所以和 2.2 是一个作用
3 没有特别理解你的意思 能否再解释一下呢?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星