删除不必要的节点模块

Posted

技术标签:

【中文标题】删除不必要的节点模块【英文标题】:Removing unnecessary node modules 【发布时间】:2019-01-27 20:00:25 【问题描述】:

我使用提供的标准示例应用程序构建了我的 Electron 应用程序,其中包含许多节点模块。有超过 200 个节点模块,其中许多我不需要。我想删除所有我不需要的,但不清楚如何确定。我需要的一些有依赖模块,我无法确定是哪些。除了删除我认为不需要的模块并测试应用程序以查看它是否正常工作之外,是否有更快速、更准确的方法来确定我需要哪些模块?

在我的 package.json 文件中,依赖部分列出了几个模块。如果我删除所有节点模块并重新运行应用程序,则会安装 package.json 文件中列出的模块,但还会安装数百个。我不知道是否所有其他的都是绝对需要的,或者 npm start 命令是否只是抓取与 package.json 文件中的那些相关的所有内容。

【问题讨论】:

根据您的 npm 版本,依赖项安装在 node_modules 文件夹中的平面结构中,带有 > npm v2.x.x。如果您在 package.json 文件中引用了所有需要的模块,则干净的 npm install (rm -rf node_modules && npm install) 将仅安装这些模块及其所需的依赖项。 我按照你的建议做了,很惊讶它安装了所有数百个文件。我可以假设它们是依赖项,但这并不意味着它们实际上是必需的。我怀疑创建这些依赖项的人只是添加了所有内容,即使我的应用不需要它。 最有可能的是,这些模块中的大多数实际上都是必需的。在你的 package.json 中安装了数百个模块,只有 5-10 个是正常的。 @androidDev 它们是您在package.json 中指定的依赖项的依赖项。无论您是否明确使用它们,这些包本身都需要它们。 【参考方案1】:

尝试使用 depcheck 工具:https://www.npmjs.com/package/depcheck。通过运行npm install depcheck 安装它。但是,您可能要小心一点,因为自从误报使用它以来,我已经得到了。请务必阅读文档,因为我认为他们有某些方法可以通过您可以指定的规则来防止这些误报。

【讨论】:

我刚刚发现并尝试了它。它清楚地报告了错误的依赖关系。我很惊讶有人使用它。 您是否碰巧使用了不同的语法?他们支持打字稿和其他。 只是普通的旧javascript,其中模块与“require”方法一起使用。 我相信有些模块使用打字稿。不过试试这个线程中提出的一些建议***.com/questions/22675725/…【参考方案2】:

首先,打开 vs Code。 如果您将节点模块保存在任何其他位置,则转到文件的选定级别。 "检查图像在终端中打开 Git Bash"

PAst : $ [rm -rf ./node_modules].... 最后一步:- 经过这行代码enter image description here rm -rf ./node_modules

【讨论】:

【参考方案3】:

如果您可以使用 unix 工具,请在整个项目中对“require(”执行 grep,这将为您提供至少明确包含在项目中的每个模块的列表。

【讨论】:

以上是关于删除不必要的节点模块的主要内容,如果未能解决你的问题,请参考以下文章

php 删除管理栏上不必要的菜单和节点

php 删除管理栏上不必要的菜单和节点

真的有必要使用数组,在子删除后显示完整节点列表的innerHTML吗?

如何使用一些可选模块构建多包节点模块

删除了节点模块,现在出现“错误:找不到模块 'webpack/lib/RuleSet'”错误

如何从 github 中删除节点模块(发布分支)