![](/img/trans.png)
[英]How to clean node_modules folder of packages that are not in package.json?
[英]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.