前端资源过大,app.js 文件达到 1m 多,package 并没有加入多少东西,可就是压缩不下去,这是为什么呢?

框架:laravel5.5,在框架自带的vue等前端资源之外加了elementui,wangeditor,qiniu上传,我的package.json
file
在windows运行npm run dev发现app.js变成了3m多,发布线上的时候运行了npm run production,变成了1m多,可是1m也是很大的,我试着把qiniu.min.js和plugload的包提到了package的外面通过了标签引入,发现还是1m多,减少了100多k,然后我试着用了elementui的按需引入,少了100多k,然后我使用了laravel文档中的提取依赖库,把webpack.mix.js用了提取依赖库把vue,element-ui,wangeditor,axios,jquery提取到vendor.js,app.js确实减少了一些,vendor.js变成了将近1m,下面贴图
file
更可恨的是在服务器上原来的加载app.js只需要12秒左右,如图file现在加载提取依赖库之后发现并没有加快速度,今晚回去再去掉,奇怪的是为什么会这么大?难道实在没有办法缩小吗?群里问了没有得到什么资料,希望在这里能够得到帮助谢谢,回去我会尝试用webpack的一些降低大小的方法继续尝试。如果您也遇到过类似的情况请指点一下,万分感谢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 15

ElementUI 不要放 vendor 里了,然后加上这些:组件懒加载、gzip 或 CDN ,速度 1 ~ 2 秒绝对可以的。

6年前 评论

@Littlesqx element拿出来然后压缩到app.js后,app.js就有1m多,我压缩正常吗?会不会我的环境有问题或者配置出现问题

6年前 评论
幽弥狂

@旺仔小馒头 npm run production

6年前 评论
风吹枫落

把 jq 去掉试试

6年前 评论

@xhh110 这是运行npm run production之后是1m多,如果运行npm run dev是将近4m

6年前 评论

@风吹枫落 这里去掉然后在页面引入jq的话运行npm run production的时候会报bootstrap.js的一个错误,说需要jq我记得。。回去我试一下把报错信息贴出来,我试过这个方法

6年前 评论

@Littlesqx 嗯嗯我试一下,我不用提取依赖了,因为用了之后速度更慢了,其余懒加载那些我需要查一下资料,gzip和cdn我需要查一下资料再做,没接触过之前,如果你有好的方法或者什么技巧希望可以贴出来学习一下万分感谢。

6年前 评论
leo

lodash 去掉应该能少几百K

6年前 评论

@Littlesqx

file
就nginx用了gzip,从14秒变成现在的不到3秒,解决了好几天都在缩小app.js的体积,没想到==!谢谢谢谢,回头再试试你说的懒加载,谢谢谢谢

6年前 评论
RyanFeng

同样的问题,我用的是element-UIvue-router,整个Dashboard项目app.js npm run production后有 1Mb 多一点左右,还没有研究怎么拆分。
我还没有把vendor.js拆出来,虽然只有1个文件,且只加载一次,平时都是302缓存住的,且都是自己公司的运营在用,但是我还是觉得一次性下载的文件太大了,影响第一次的打开的效率。

6年前 评论

使用路由懒加载

{path: 'dashboard',name: 'admin.dashboard',component: () => import(/* webpackChunkName: "/admin/js/chunk/dashboard" */  '~/pages/admin/dashboard')}
6年前 评论

@RyanFeng 现在我使用了gzip,速度大大提高,只是app.js的体积并没有减少,提取依赖那个我给去掉了,确实能减少app.js的体积,可是多了一个js的体积,开发任务太紧,没看那些懒加载什么的,这个问题留待以后处理吧,如果你有时间解决了这个问题,希望贴出来,谢谢

6年前 评论
RyanFeng

@旺仔小馒头 刚刚@错人了 重新发一次。 其实我觉得1MB左右的大小对于一整个单页应用来说,并不算特别大的,且加载一次之后,后面都不用再有JS了

file

而且大多数情况下,用户的浏览器都会缓存到。如果是复杂应用的话,拆成多个单页应用就好了。

file

6年前 评论

试试tree-shaking?

6年前 评论
森林

每个路由做了懒加载没有?
所有库都分离出来用cdn引入。
可以看看我的这个 https://github.com/xusenlin/VueSpaTemplate
欢迎star

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!