是否有删除所有全局npm模块的命令?如果没有,你有什么建议?
下面的命令删除所有全局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全局删除所有来自前一个管道的模块
对于那些使用Windows的人来说,删除所有全局安装的npm包的最简单的方法是删除以下内容:
C:\用户\用户名\应用数据\漫游\npm
您可以通过在资源管理器、运行提示符或开始菜单中键入%appdata%/npm快速到达那里。
我尝试了凯·斯特纳德的解决方案,但对我来说似乎并不完美。在最后一个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
sed的解决方案
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
为我工作
Sudo NPM list -g——depth=0。列出所有已安装的顶级 awk -F ' ' '{print $2}'摆脱├── awk -F '@' '{print $1}'获取'@'之前的部分 Sudo xargs NPM remove -g全局删除包
只需切换到您的%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) ?
好吧,如果你在windows上,想要删除/卸载所有的node_modules,那么你需要执行以下步骤。
进入windows命令提示符 导航到node_modules目录(不在node_modules文件夹内) 输入下面的命令,并给它1-2分钟,它将卸载node_module中的所有目录 Rmdir /s /q node_modules .使用实例
希望这对窗户上的人有所帮助
如果你安装了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
对于使用Powershell的用户:
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
清除缓存。
npm cache clear
只要把你的控制台:
Sudo NPM list -g——depth=0。| awk -F ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
这是我的工作……
对于Windows,这个脚本可以用来核化本地和用户的全局模块和缓存。
我注意到在linux上,全局根对系统来说是全局的,而不是给定的用户。因此,对于共享系统,删除全局根可能不是一个好主意。除此之外,如果有兴趣,我可以将脚本移植到bash。
对于Windows,保存到一个cmd文件中运行。
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SETLOCAL EnableExtensions
SET /A ecode=0
:: verify
SET /P conf="About to delete all global and local npm modules and clear the npm cache. Continue (y/[n])?
IF /I NOT "%conf%"=="y" (
ECHO operation aborted
SET /A ecode=!ecode!+1
GOTO END
)
:: wipe global and local npm root
FOR %%a IN ("" "-g") DO (
:: get root path into var
SET cmd=npm root %%~a
FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r)
:: paranoid
ECHO validating module path "!npm_root!"
IF "!npm_root:~-12!"=="node_modules" (
IF NOT EXIST "!npm_root!" (
ECHO npm root does not exist "!npm_root!"
) ELSE (
ECHO deleting "!npm_root!" ...
:: delete
RMDIR /S /Q "!npm_root!"
)
) ELSE (
ECHO suspicious npm root, ignoring "!npm_root!"
)
)
:: clear the cache
ECHO clearing the npm cache ...
call npm cache clean
:: done
ECHO done
:END
ENDLOCAL & EXIT /b %ecode%
如果你有Intellij Webstorm,你可以使用它内置的图形包管理器。
以root用户打开并创建一个空项目。去
>文件设置>语言和框架> Node.js和NPM
在那里您将看到所有已安装的包。卸载很容易,你可以选择和取消选择任何包,你想卸载,Ctrl+一个工作以及。
你都做得很好。这是将建议合并到一行代码中。
npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`
有什么不同?卸载将通过如下命令完成:npm rm -g *** *** ***
你可以在以下位置找到你所有安装的npm包:
C:\Users\username\AppData\Roaming\npm
并删除你想删除的NPM内容。
如果AppData没有显示,这意味着它被隐藏了,你可以在文件资源管理器中查看并选中隐藏项,然后你可以看到所有隐藏的文件夹。
因为这是搜索中最热门的答案,所以我把它贴在这里,因为这是我过去用来清洁电脑切换笔记本电脑的解决方案。
cd ~/Documents # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +
来源:https://winsmarts.com/delete-all-node-modules-folders-recursively-on-windows-edcc9a9c079e
环球纱线
nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add
或者,如果你不关心package.json中的实际内容
echo {} > ~/.config/yarn/global/package.json && yarn global add
这应该也适用于NPM,但我不确定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
npm README。md:
如果您想删除已安装的所有软件包,请 然后您可以使用NPM ls命令来查找它们,然后NPM rm来 移除它们。 移除npm 0留下的杂物。X,你可以使用包含的 Clean-old.sh脚本文件。你可以这样方便地运行它: NPM探索NPM -g——sh scripts/clean-old.sh
对于一种更手动的方法,它不涉及文件浏览器,不关心安装在哪里,以后不太可能崩溃,100%跨平台兼容,并且由于额外的步骤而感觉更安全,请使用这种方法。
npm ls -g --depth=0 Copy output Paste into favorite code editor (I use vsCode. Great multi-cursor editing) Check for any packages you'd like to keep (nodemon, yarn, to name a few) Remove those lines Remove every instance of +-- or other line decorators Remove all the version information (eg '@2.11.4') Put all items on same line, space separated Add npm uninstall -g to beginning of that one line. Mine looks like npm uninstall -g @angular/cli @vue/cli express-generator jest mocha typescript bindings nan nodemon yarn, but I didn't install many packages globally on this machine. Copy line Paste in terminal, hit enter if not already added from the copy/paste Look for any errors in the terminal. Check npm ls -g to make sure it's complete. If something got reinstalled, rinse and repeat
其他仅使用cli的方法非常适合计算机管理员从相同的ssh或Puppet同时为100台几乎相同的计算机做一些事情。但如果你只做一次,甚至一年5次,这就容易多了。
简单地使用下面的MAC,
Sudo rm -rf /usr/local/ {bin /{节点,npm}, lib / node_modules / npm、lib /节点,共享/男人/ /节点。}
npm list -g
将显示全局安装包的位置。
如果你想把它们输出到一个文件: npm list -g > ~/Desktop/npmoutputs.txt
npm rm -g
会移除它们
sudo npm uninstall npm -g
或者,如果失败了,获取npm源代码,并执行:
sudo make uninstall
手动删除所有与npm相关的内容:
rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
推荐文章
- npm start和npm run start的区别
- 有没有办法修复包锁。json lockfileVersion所以npm使用特定的格式?
- 如何使用npm全局安装一个模块?
- 实时http流到HTML5视频客户端的最佳方法
- 使用node.js下载图像
- Node.js Express中的HTTP GET请求
- Node.js:将文本文件读入数组。(每一行都是数组中的一项。)
- npm犯错!错误:EPERM:操作不允许,重命名
- Node Sass还不支持当前环境:Linux 64位,带false
- 我如何添加环境变量启动。VSCode中的json
- 解析错误:无法读取文件“…/tsconfig.json”.eslint
- 编译typescript时'tsc命令未找到'
- 在Node.js中'use strict'语句是如何解释的?
- 当WebSockets可用时,为什么要使用AJAX ?
- 使用过程。TypeScript中的env