是否有删除所有全局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  

其他回答

只要把你的控制台:

Sudo NPM list -g——depth=0。| awk -F ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g

这是我的工作……

简单地使用下面的MAC,

Sudo rm -rf /usr/local/ {bin /{节点,npm}, lib / node_modules / npm、lib /节点,共享/男人/ /节点。}

下面的命令删除所有全局npm模块。注意:这在Windows上不起作用。对于Windows版本,请参阅Ollie Bennett的回答。

npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm

下面是它的工作原理:

NPM ls -gp——depth=0列出所有全局顶级模块(查看ls的cli文档) awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'打印所有不是npm本身的模块(不以/npm结尾) Xargs NPM -g rm全局删除所有来自前一个管道的模块

只需切换到您的%appdata%/npm目录并运行以下…

for package in `ls node_modules`; do npm uninstall $package; done;

EDIT:这个命令在npm 3.3.6 (Node 5.0)中中断。我现在使用以下Bash命令,我已经映射到我的.bashrc文件中的npm_uninstall_all:

npm uninstall `ls -1 node_modules | tr '/\n' ' '`

额外的好处?这要快得多!

https://github.com/npm/npm/issues/10187

如何卸载包中列出的所有依赖项。json (NPM) ?

npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g