繁体   English   中英

如何从package.json中列出的node_modules中删除所有软件包

[英]How to remove all packages from node_modules that are listed in package.json

基本上我正在寻找npm prune的“对立面”或 SO问题。

进一步来说:

我正在寻找从根package.json文件中列出的所有软件包中清理node_modules文件夹的方法。 npm install之前npm install新的开始。

我不想不想简单的原因rm -rf node_modules/是因为我有我不想被删除一些地方模块。

不可能一次删除package.json中的全部内容,而可以编写Shell脚本来循环遍历。 或者您可以检查npm ls ,然后删除npm rm <name>或npm手动卸载它们。 并同时在package.json中更新它npm rm <name> --save

更好的方法是将您的永久(本地)模块放在更高级别的目录中:

-node_modules (local)
-my_project
|-node_modules (npm)

这样,当您擦除node_modules目录时,外部的本地模块将保留。

正如其他人指出的那样,没有本机的npm命令可以做到这一点。

我采取了这个答案并修改了命令:

$ npm ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm rm

这会列出您所有的本地软件包,然后逐一npm rm它们。

为了方便起见,如果需要,可以package.json下行添加到package.json

"scripts": {
    "uninstall": "npm ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm rm"
}

然后运行

$ npm run uninstall

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM