是否有删除所有全局npm模块的命令?如果没有,你有什么建议?
当前回答
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs 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*
如果你有Intellij Webstorm,你可以使用它内置的图形包管理器。
以root用户打开并创建一个空项目。去
>文件设置>语言和框架> Node.js和NPM
在那里您将看到所有已安装的包。卸载很容易,你可以选择和取消选择任何包,你想卸载,Ctrl+一个工作以及。
对于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%
下面是我尝试的一个更优雅的解决方案,我让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
在macOS中,我相信你可以简单地删除用户目录中的.npm-global文件夹。
macOS下的.npm和.npm-global文件夹用户目录:
推荐文章
- ReferenceError: description没有定义NodeJs
- 将一个二进制的NodeJS Buffer转换为JavaScript的ArrayBuffer
- AngularJS只适用于单页应用程序吗?
- 如何在vue-cli项目中更改端口号
- 如何查看npm包的大小?
- 同步和异步编程(在node.js中)的区别是什么?
- 如何编辑通过npm安装的节点模块?
- “node_modules”文件夹应该包含在git存储库中吗
- 使用package.json在全局和本地安装依赖项
- this.libOptions.parse不是一个函数
- 对嵌套文件夹运行npm install的最好方法是什么?
- 节点Multer异常字段
- 在Ubuntu上安装Bower
- 很好的初学者教程socket.io?
- CALL_AND_RETRY_LAST分配失败-进程内存不足