vscode本身不提供一键清除node冗余包功能,需用depcheck等外部工具静态扫描import/require语句并与package.json比对;“lodash”: []表示真冗余,missing字段为缺失依赖而非冗余,须人工验证动态导入并同步清理配置残留。

VSCode 本身不提供“一键清除 Node 冗余包”的功能,所谓冗余包必须靠外部工具静态扫描源码 import 语句后比对 package.json 才能识别;直接在 VSCode 终端执行 npm uninstall 不会自动发现未引用的包。
depcheck 是目前最靠谱的静态扫描工具
它不运行代码,只解析 import、require()、dynamic import() 等语法节点,再和 package.json 的 dependencies 和 devDependencies 对比。结果里 "lodash": [] 表示没找到任何调用,才是真冗余。
- 安装:
npm install -g depcheck - 运行:
depcheck . --ignore-bin-package --json(--ignore-bin-package跳过 CLI 工具类包,如eslint自身) - 注意:
missing字段是反向问题——代码里写了但package.json没列,别当成冗余误删 - 它不识别字符串动态导入(
require('pkg' + 'name'))、importlib.import_module(Python 混用场景)或__import__,这类需人工确认
npm uninstall 必须带参数才更新 package.json
执行 npm uninstall pkg_name 默认只删 node_modules,不改 package.json —— 这是 npm v5+ 的行为变更,不是 bug。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 删
dependencies:加--save(旧版)或直接不加参数(v7+ 默认行为,但不绝对可靠) - 删
devDependencies:必须显式加--save-dev - 验证是否生效:
git diff package.json看有没有删掉对应行 - 如果删完
node_modules里还有残留,大概率是 npm 扁平化机制复用了其他依赖的子依赖,此时rm -rf node_modules && npm install更彻底
卸载后必须清理三类残留配置
包删了,但相关配置还在,ESLint、Prettier 或构建脚本可能报错或失效。
-
.eslintrc.js或.prettierrc中硬编码的插件名(如'plugin:vue/recommended')要同步删掉 -
webpack.config.js或vite.config.ts里resolve.alias或plugins: [require('xxx')]引用需手动移除 - VSCode 插件如
ESLint、Import Cost可能缓存旧模块路径,重启 VSCode 或执行Developer: Reload Window才刷新
别信“一键清理”脚本,手动验证每一步
自动化脚本容易误删生产依赖,尤其当项目含 monorepo、lerna 或 pnpm workspace 时,depcheck 默认不递归扫描子包。
- 先全局搜索:
grep -r "import.*pkg_name\|require.*pkg_name" . --include="*.js" --include="*.ts" - 检查
tests/目录、scripts/下的运维脚本、甚至README.md里的示例代码 - 删完立刻跑
npm test和npm run build,有些包虽无 import,却是 Webpack loader 或 Babel plugin 的隐式依赖 -
workspaceStorage和extensions缓存不会影响包逻辑,但若语言服务器反复崩溃,可删~/.vscode/extensions/*-cache子目录
真正容易被忽略的是:depcheck 报告的“冗余”,可能只是当前分支没用到,但主干或 CI 流水线仍依赖;删之前最好 git checkout main && npm ci && depcheck . 再核对一次。










