npm uninstall从package.json中删除该软件包,但不从node_modules文件夹中将其删除

时间:2018-07-10 22:21:20

标签: node.js angular npm angular5

我尝试使用

删除软件包
npm uninstall (package_name) -s 

哪个从package.json中删除了该程序包,但没有从node_modules文件夹中删除它,那么如何从node_modules文件夹中删除这些未使用的程序包?

编辑:

我个人遇到此问题时正在分享此问题解答,使用了npm uninstall的所有变体但它并未从node_modules中删除该包,因此我分享了帮助我删除该问题的内容大约10个未使用的软件包,它们是npm prune

我希望拒绝投票的人能指导我,让他们更好地回答问题,以感谢他们为什么拒绝投票。

2 个答案:

答案 0 :(得分:2)

As per the npm guide,npm uninstall仅从依赖项中删除软件包,它不会从node_modules中删除软件包文件夹(无论如何在说明中均未提及)

出于某种原因,我认为npm卸载也会从node_modules中删除软件包文件夹,但是并没有发生,经过一些研究,我发现我们应该使用

npm prune

此命令将按照the official npm description

自动从node_modules中删除未使用的软件包。

编辑:

无论有多少不合理的否决,我都不会删除此问题,因为我一直在寻找这样的提示:

  

npm卸载只会从您的软件包中删除软件包   package.json文件,但不会从您的node_modules中删除该程序包

我希望这对其他人有帮助,如果发现有帮助,请支持问答。

答案 1 :(得分:0)

我喜欢分享从我的项目中卸载包的过程。我相信它可以为上述答案增加价值。

我在我的一个项目中评估了一个名为 react-router 的包。后来我决定删除它。 我想先删除包,然后从我的代码中删除它的引用。 我试过 npm uninstallnpm prune。但是,在这两种情况下,它都无法从我的 node-modules 文件夹中删除包。 我从代码中删除了 react-router 的引用并再次尝试。我仍然无法使用上述命令将其删除。 经过一番挖掘,我发现我还安装了使用 react-router-dom 包的 react-router。所以我必须先使用上面的命令删除它。只有这样,我才能删除 react-router

我觉得奇怪的是 npm uninstall 不会删除被引用的包。我认为,如果允许,我不必通过在类中搜索它们来手动查找包的用法,而不是 IDE/Lint 可以帮助我更轻松地找到它。