如何列出 React 项目中未使用的节点模块/依赖项?

Posted

技术标签:

【中文标题】如何列出 React 项目中未使用的节点模块/依赖项?【英文标题】:How to list unused node modules/dependencies from your React Project? 【发布时间】:2018-06-21 00:07:36 【问题描述】:

需要一种解决方案来从项目中删除未使用的节点模块和节点模块依赖项

我搜索了互联网,发现了几个 NPM 包可以做类似的事情,但不完全符合我的要求。

请注意,如果节点模块既不是其他节点模块的依赖项,也不是在任何项目代码中使用的,则应列出/删除节点模块。

请帮忙

【问题讨论】:

你在用webpack吗?如果是,你可以用摇树webpack.js.org/guides/tree-shaking 我们没有使用 webpack。此外,treeshaking 不会删除我的代码中未使用的模块。 这个问题以更一般的方式提出here。 【参考方案1】:

运行 npm prune 以取消构建 package.json 中未列出的模块。

来自 npm 帮助修剪:

此命令删除“无关”包。如果提供了包名称,则仅删除与提供的名称之一匹配的包。

外部包是未列在父包的依赖项列表中的包。

如果指定了 --production 标志,此命令将删除您的 devDependencies 中指定的包。

发件人:npm command to uninstall unused packages in Node.js

【讨论】:

这不会删除实际代码库中未使用的项目。 正如@zero298 提到的,提供了不从实际代码库中删除节点模块的解决方案。【参考方案2】:

也许你可以使用像depcheck这样的工具:

Depcheck 是一个用于分析项目中的依赖关系的工具,以查看:每个依赖项是如何使用的,哪些依赖项是无用的,以及 package.json 中缺少哪些依赖项。

另一个是npm-check

检查过时、不正确和未使用的依赖项。 ...如果您的代码中没有使用依赖项,请通知您...

【讨论】:

试过 npm-check,它使用了我的大量内存和交换空间,不久之后我的电脑就死机了。 depcheck 似乎工作正常。【参考方案3】:

我最近用过npm-check

检查过时、不正确和未使用的依赖项。

安装后在终端运行命令:

$ npm-check

【讨论】:

以上是关于如何列出 React 项目中未使用的节点模块/依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

npm命令用于卸载或修剪Node.js中未使用的包

Mojo 开发 - 处理多模块项目中未解决的依赖关系

我应该依赖 package.json 还是对我的节点模块进行版本控制?

如何在不包含节点模块文件夹的情况下将我的 React 项目上传到 GitHub [重复]

React 项目无法在 git 子模块中使用节点模块

如何通过 NPM 管理非节点模块作为 Node Project 的依赖项?