如何压缩前端项目中 JS 的体积

编程入门 行业动态 更新时间:2024-10-28 12:17:14

如何压缩前端项目中 JS 的<a href=https://www.elefans.com/category/jswz/34/1731477.html style=体积"/>

如何压缩前端项目中 JS 的体积

在前端项目中,压缩 JavaScript 文件的体积可以提高网页加载速度和性能。下面是一些常用的方法来压缩前端项目中的 JavaScript 文件体积:

  • 使用压缩工具:使用专门的压缩工具可以自动化地压缩 JavaScript 代码。一些常用的工具包括 UglifyJS、Terser、Closure Compiler 等。这些工具可以删除注释、空格、不必要的字符,并进行代码优化,从而减小文件体积。

  • 混淆变量和函数名:通过将变量和函数名替换为更短、无意义的名称,可以减小文件体积。这种技术称为变量和函数名的混淆。混淆工具可以自动执行此操作,例如 UglifyJS 和 Terser。

  • 删除不必要的代码:检查 JavaScript 文件中是否存在不再使用的代码块、函数或变量。删除不必要的代码可以减小文件体积并提高性能。

  • 使用模块化开发:使用模块化开发可以将代码拆分为多个模块,每个模块只包含所需的功能。这样可以避免将整个 JavaScript 文件加载到页面中,只加载需要的模块,减小文件体积。

  • 使用压缩版的第三方库:如果项目中使用了第三方库,通常这些库都提供了压缩版的文件。使用压缩版的第三方库可以减小文件体积。

  • 避免重复代码:检查代码中是否存在重复的代码块,并将其提取为可复用的函数或模块。这样可以减小文件体积并提高代码的可维护性。

  • 开启 gzip 压缩:在服务器端开启 gzip 压缩可以减小传输的文件体积。当浏览器请求 JavaScript 文件时,服务器会将文件进行 gzip 压缩后再发送给浏览器,浏览器会解压缩并执行。

  • 使用动态导入:对于大型的 JavaScript 文件,可以使用动态导入来延迟加载文件。这样可以减小初始加载的文件体积,提高页面加载速度。

更细节一点的操作

  • 去除多余字符,eg:空格,换行、注释
  • 压缩变量名,函数名、属性名
  • 使用更简单的表达,eg:合并声明、布尔值简化
  • terser 或者 uglify,及流行的使用 Rust 编写的 swc 压缩混淆化 JS。
  • gzip 或者 brotli 压缩,在网关处(nginx)开启
  • 使用 webpack-bundle-analyzer 分析打包体积,替换占用较大体积的库,如 moment -> dayjs
  • 使用支持 Tree-Shaking 的库,对无引用的库或函数进行删除,如 lodash -> lodash/es
  • 对无法 Tree Shaking 的库,进行按需引入模块,如使用 import Button from ‘antd/lib/Button’,此处可手写 babel-plugin 自动完成,但不推荐
  • 使用 babel (css 为 postcss) 时采用 browserlist,越先进的浏览器所需要的 polyfill 越少,体积更小
  • code spliting,路由懒加载,只加载当前路由的包,按需加载其余的 chunk,首页 JS 体积变小 (PS: 次条不减小总体积,但减小首页体积)
    使用 webpack 的 splitChunksPlugin,把运行时、被引用多次的库进行分包,在分包时要注意避免某一个库被多次引用多次打包。此时分为多个 chunk,虽不能把总体积变小,但可提高加载性能 (PS: 此条不减小总体积,但可提升加载性能)

更多推荐

如何压缩前端项目中 JS 的体积

本文发布于:2023-11-15 01:19:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1591147.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:体积   项目   JS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!