如何从package.json中列出的node_modules中删除所有的软件包
基本上我正在寻找npm prune
的“相反”或这个问题。
进一步来说:
我正在寻找从我的根package.json
文件中列出的所有包清理node_modules
文件夹。 在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
添加下面这行:
"scripts": { "uninstall": "npm ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm rm" }
然后运行
$ npm run uninstall