最早之前使用 webpack,有玩过分析打包出来代码的插件,vue 脚手架甚至内置了一个。其实无论什么开发打包工具,都有类似的工具。
最近新起了一个项目,自己对一些结构有自己的坚持(或许说是习惯),于是要求另一个开发最好也做一些全局方面的代码结构和代码使用。气氛不是很融洽,也没有面红耳赤就是了,只是我自己有点爆炸。
有些是代码风格不一样,需要理解,一些理念不一样,也需要理解。最后就是能跑就行,管他呢,大家一起堆。
跑题了,今天想要分享的是代码分析,vite 使用 rollup-plugin-visualizer:
npm install --save-dev rollup-plugin-visualizer
import { visualizer } from "rollup-plugin-visualizer";
import { defineConfig, type PluginOption } from 'vite'
//vite.config.js
export default defineConfig({
plugins: [visualizer({filename: "stats.html",}) as PluginOption],
})
运行打包命令后,会生成 stats.html 文件,打开就有分析的结果:
如果某一块内容太大,就可以具体分析是否能优化。个人觉得,通过这个去分析代码能减少很大的代码体积。
另一个工具是 jscpd,支持超过 150 种代码语言: Copy/paste is a common technical debt on a lot of projects.
$ npm install -g jscpd
//根目录新建.jscpd.json
{
"threshold": 1,//阈值,超过这个值的就输出报错
"reporters": [
"html",
"console"
],
"absolute": true
}
//命令行执行
jscpd ./src -o result
结果:
看了一下结果,有一些重复检测的有点不太合适,比如一些标签,居然检测出来是重复的。个人觉得展示的结果不够直观。
个人觉得,如果对这块有一点洁癖或者是执着的,可以用这两个工具给自己的项目瘦瘦身。而我,既然改变不了别人,那就让自己随波逐流,融入这个项目,能跑就行。
鄙视屎山代码,理解屎山代码,写出屎山代码。