我尝试使用删除软件包
npm uninstall (package_name) -s
它从package.json中删除了包,但没有从node_modules文件夹中删除它,那么如何从node_modules文件夹中删除这些未使用的包?
编辑:
我分享这个问答是因为我个人遇到了这个问题,使用了
npm uninstall
的所有变体,但它没有从node_modules中删除包,所以我分享了帮助我删除大约10个未使用的包的内容,这是npm prune
根据 npm 指南,npm uninstall 仅从依赖项中删除包,它不会从 node_modules 中删除包文件夹(无论如何描述中都没有提到)
出于某种原因,我认为 npm uninstall 也会从 node_modules 中删除包文件夹,但它没有发生,经过一些研究,我发现我们应该使用
npm prune
此命令将按照官方 npm 描述自动从node_modules中删除未使用的包
npm uninstall 只会从您的 package.json 文件,但它不会从您的 node_modules 中删除该包
npm prune
和
npm uninstall --save
,但模块仍然存在于
node_modules
中,请尝试删除
node_modules
文件夹:
rm -rf node_modules
然后运行
npm install
仅使用您需要的模块再次重建您的node_modules
我在我的一个项目中评估了一个名为
react-router
的包。后来我决定把它去掉。 我想先删除该包,然后从我的代码中删除它的引用。 我尝试了
npm uninstall
和
npm prune
。但是,在这两种情况下,它都无法从我的
node-modules
文件夹中删除该包。 我从代码中删除了
react-router
的引用,然后重试。我仍然无法用上面的命令删除它。 经过一番挖掘,我发现我还安装了使用
react-router-dom
包的
react-router
。所以我必须先使用上面的命令删除它。直到那时,我才能够删除
react-router
。我觉得很奇怪,如果引用了包,
npm uninstall
不会删除它们。我想,如果允许的话,我不必通过在类中搜索来手动查找包的用法,而不是 IDE/Lint 可以帮助我更轻松地找到它。
如果 A 存在,npm uninstall B 不起作用(如上面 Ripal Barot 观察到的)。
npm uninstall A 有效。接下来,当我卸载 B 时,它会再次重新安装 A (我在所有情况下都使用 --no-save 选项,因为我不希望修改我的 package.json 并且我没有任何 package-lock.json ).
我能找到的唯一解决方案是: