查看项目中无引用到的文件、函数

unimported 查看没有引用的文件

  1. 全局安装 unimported

    npm install -g unimported

  2. 在 package.json 的 scripts 增加

json 复制代码
"scripts": {   
  "analyze:deadcode": "unimported && webpack --profile --json > stats.json" 
} 
  1. 增加文件 .unimportedrc.json
json 复制代码
{
    "entry": [
      "src/app.{js,ts,jsx,tsx}",       
      "src/app.config.{js,ts}",        
      "src/pages/**/*.{js,ts,jsx,tsx}"
    ],
    "ignore": [
      "**/node_modules/**",
      "**/dist/**",
      "**/*.d.ts",
      "**/*.test.{js,ts}",
      "**/*.spec.{js,ts}",
      "**/__mocks__/**",
      "project.config.json",
      "config/**/*.js"                 
    ],
    "ignoreUnused": [
      "src/types/**/*.d.ts",           
      "src/assets/**/*",               
      "src/styles/**/*.{css,scss,less}" 
    ]
  }
  1. 然后运行
arduino 复制代码
npm run analyze:deadcode

运行后输出以下内容,列出未引用的文件

注意 有些小程序页面 A 也会有 /component 的组件,只给页面A用, 但是 "src/pages/**/*.{js,ts,jsx,tsx}" 会涵盖掉,不会把A的无用组件列出来, 这种情况下,小程序最好每个页面的路径都列出来,例如以下,这样可以更加精确的定位到每个页面ABCD里面的component是否真正有被使用

json 复制代码
{
    "entry": [
      "src/app.{js,ts,jsx,tsx}",       
      "src/app.config.{js,ts}",        
      "src/pages/index/index.{js,ts,jsx,tsx,config.ts}",
      "src/pages/home/index.{js,ts,jsx,tsx,config.ts}",
      "src/pages/category/index.{js,ts,jsx,tsx,config.ts}",
      "src/pages/cart/index.{js,ts,jsx,tsx,config.ts}",
      "src/pages/mine/index.{js,ts,jsx,tsx,config.ts}",
      "src/pages/product/detail/index.{js,ts,jsx,tsx,config.ts}",
      "src/pages/product/content-hub/index.{js,ts,jsx,tsx,config.ts}",
    ],
    "ignore": [ ],
    "ignoreUnused": [ ]
  }

使用Webpack插件 webpack-deadcode-plugin 查看未使用的函数和变量

  1. 安装 webpack-deadcode-plugin
css 复制代码
npm install webpack-deadcode-plugin --save-dev
  1. 在webpack配置中添加:
php 复制代码
const DeadCodePlugin = require('webpack-deadcode-plugin');

// 增强配置可检测具体方法
chain.plugin('deadcode')
  .use(DeadCodePlugin, [{
    detectUnusedExport: true,    // 检测未使用的导出
    detectUnusedClass: true,     // 检测未使用的类
    detectUnusedFunction: true,  // 检测未使用的函数
    detectUnusedVariable: true,  // 检测未使用的变量
    log: 'all'                   // 显示所有未使用项
  }]);
  1. 运行构建后会生成未使用文件的报告

通过这些方式可以 了解到 哪些文件、函数、变量没有使用到

如果要删除

  1. 一定要确认、确认、确认、多次确认 清楚再删
  2. 小规模的删,不要一次性删太多东西
  3. 删除之后,对于相关的流程做好自测,也要跟 QA 和 产品说明清楚,可能要做大版本的回测
  4. 对于已经上线的项目,不建议再做这样的操作,如果需要做也必须【提前】跟 PM、QA 商量一下是否有足够的时间安排来做代码优化和流程测试,避免出现生产事故
相关推荐
小码哥_常5 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
蜗牛攻城狮8 小时前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
她说可以呀9 小时前
Vue插槽
前端·javascript·vue.js
qq_448011169 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
aixingpan9 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_9583529010 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
志尊宝10 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native
FRing0311 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript
excel12 小时前
双 Token 与前端使用 Crypto 公私钥鉴权换 Token,哪种方案更好?
前端·后端
外收内放12 小时前
Python基础语法练习题(73)
java·前端·python