飞道的博客

使用WebpackAliyunOss提高首页加载速度

342人阅读  评论(0)

框架:Vue + webpack4

这段时间一直在优化web系统的首页加载速度,如果你也遇到了”不管怎么优化、文件体积变得再小,首页加载仍然很慢“,那么请按照下面的步骤检查一下

步骤一

最开始首页要白屏15s+,后面通过webpack的分包+压缩把速度优化到了8s。

分包:optimization(webpack3用webpack.optimize.CommonsChunkPlugin)

压缩:compression-webpack-plugin

这两个大部分人都能实现,而且网上也有很多文章我就不赘述了

步骤二

通过BundleAnalyzerPlugin插件找到大文件再次优化,缩小打包后的文件体积。

 举个栗子,moment优化:

1.换用dayjs;

2.使用插件,加载moment时只下载中文的包:new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /zh-cn/)

优化的思路就是实现按需加载,不同插件的按需加载实现方式网上都能找到,不赘述了

 步骤三

检查是否开启了cdn加速

 

 除cdn外还可以将打包后的文件上传到oss,下面是实现方法


  
  1. // webpack.prod.js
  2. const WebpackAliyunOss = require( 'webpack-aliyun-oss')
  3. module.exports = env => ({
  4. output: {
  5. chunkFilename: 'static/js/[name].[chunkhash:8].js',
  6. path: path.resolve(__dirname, '../dist'),
  7. publicPath: `${oss_config.url}webpack/web/` // publicPath改为对应的oss地址+目录,目录就是下面配置中的dist,这一步千万别忘记!!!否则无法请求到对应的资源
  8. },
  9. plugins: [
  10. // 上传文件到oss
  11. new WebpackAliyunOss({
  12. from: [ './dist/**'], // 上传哪些文件,支持类似gulp.src的glob方法,如'./build/**', 可以为glob字符串或者数组。
  13. dist: 'webpack/web/', // 上传到oss哪个目录下,默认为oss根目录。
  14. region: oss_config.region, // 阿里云上传区域
  15. accessKeyId: oss_config.accessKeyId, // 阿里云的授权accessKeyId
  16. accessKeySecret: oss_config.accessKeySecret, // 阿里云的授权accessKeySecret
  17. bucket: oss_config.bucket, // 上传到哪个bucket
  18. setOssPath: filePath => {
  19. // some operations to filePath
  20. let index = filePath.lastIndexOf( "dist");
  21. let Path = filePath.substring(index + 4, filePath.length);
  22. return Path.replace( /\\/g, "/");
  23. }
  24. })
  25. ]
  26. })

 实现以上步骤我的首页加载只需要几百毫秒了,解决了心头大患,吃饭都更香了

希望看了这篇文章也能为你那头秀发做点贡献,咱不贪心,能保一根是一根

 

 


转载:https://blog.csdn.net/superYe7/article/details/116263928
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场