是否有删除所有全局npm模块的命令?如果没有,你有什么建议?
当前回答
简单地使用下面的MAC,
Sudo rm -rf /usr/local/ {bin /{节点,npm}, lib / node_modules / npm、lib /节点,共享/男人/ /节点。}
其他回答
如果你有MSYS for Windows:
rm -rf ${APPDATA//\\/\/}/npm
下面是我尝试的一个更优雅的解决方案,我让npm为我做所有的工作。
# On Linux Mint 19.1 Cinnamon
# First navigate to where your global packages are installed.
$ npm root # returns /where/your/node_modules/folder/is
$ cd /where/your/node_modules/folder/is # i.e for me it was cd /home/user/.npm-packages/lib/node_modules
然后,如果你进行npm卸载或npm删除,这些模块将被视为正常的项目依赖项。它甚至生成一个包锁。Json文件,当它完成:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
我尝试了凯·斯特纳德的解决方案,但对我来说似乎并不完美。在最后一个awk之后,deps树本身留下了很多特殊的符号。
所以,我对Kai Sternad的解决方案进行了自己的修改(从cashmere的想法中得到了一点帮助):
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm
NPM ls -gp——depth=0以可解析的格式列出所有全局安装的NPM模块:
/home/leonid/local/lib
/home/leonid/local/lib/node_modules/bower
/home/leonid/local/lib/node_modules/coffee-script
...
awk -F/node_modules/ '{print $2}'从路径中提取模块名,形成所有全局安装模块的列表。
grep -vE '^(npm|)$'删除npm本身和空行。
Xargs -r NPM -g rm为列表中的每个模块调用NPM -g rm。
就像Kai Sternad的解决方案一样,它只能在*nix下工作。
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
如果你安装了jq,即使没有grep/awk/sed,你也可以运行:
npm ls -g --json --depth=0 |
jq -r '.dependencies|keys-["npm"]|join("\n")' |
xargs npm rm -g
在Debian和衍生版本上,你可以安装jq:
sudo apt-get install jq
推荐文章
- CALL_AND_RETRY_LAST分配失败-进程内存不足
- 在Ubuntu上安装Node.js
- 使用express.js代理
- Node -使用NODE_MODULE_VERSION 51根据不同的Node.js版本编译
- RabbitMQ / AMQP:单队列,同一消息的多个消费者?
- Node.js同步执行系统命令
- 禁用包的postinstall脚本
- Node.js上的html解析器
- 错误:无法找到模块“webpack”
- 在node.js中使用async / await文件系统
- NodeJS -用NPM安装错误
- 如何为本地安装npm包设置自定义位置?
- 回调函数来处理管道的完成
- Express函数中的“res”和“req”参数是什么?
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]