基本上我正在寻找"对面" npm prune
或this SO问题。
更具体地说:
我希望从我的根node_modules
文件中列出的所有包中清除package.json
文件夹。在npm install
之前重新开始。
我不想要简单rm -rf node_modules/
的原因是因为我有一些我不想删除的本地模块。
答案 0 :(得分:1)
不可能立即删除你的package.json中的所有内容,你可以编写shell脚本来循环。或者您可以检查npm ls
,然后手动删除npm rm <name>
或npm卸载。并同时在package.json中更新它npm rm <name> --save
答案 1 :(得分:1)
更好的方法是将永久(本地)模块放在更高级别的目录中:
-node_modules (local)
-my_project
|-node_modules (npm)
这样,当你擦除node_modules目录时,外部本地模块仍然存在。
答案 2 :(得分:0)
正如其他人所指出的,没有原生的npm命令可以做到这一点。
我已经this answer并修改了命令:
$ 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