如何卸载使用 npm 链接安装的软件包?
Posted
技术标签:
【中文标题】如何卸载使用 npm 链接安装的软件包?【英文标题】:How do I uninstall a package installed using npm link? 【发布时间】:2013-10-06 08:10:21 【问题描述】:使用包目录中的sudo npm link
安装节点包时,我如何在完成开发后卸载该包?
npm link
将包作为符号链接安装在系统的全局包位置('/usr/local/lib`)中。这使您可以在开发包的同时对其进行测试,而无需一遍又一遍地安装。
我需要运行哪个 npm 命令才能再次删除链接?
【问题讨论】:
【参考方案1】:可以使用相同的 uninstall 或 rm 命令来卸载该软件包,该命令可用于删除已安装的软件包。唯一要记住的是链接需要全局卸载 - 需要提供 --global
标志。
为了卸载全局链接的foo
包,可以使用以下命令(必要时使用sudo
,取决于您的设置和权限)
sudo npm rm --global foo
这将卸载软件包。
要检查是否安装了包,可以使用npm ls
命令:
npm ls --global foo
【讨论】:
如果您不确定链接包的名称,您也可以使用npm ls --global --depth 0
列出所有***依赖项
由于权限问题,这对我不起作用,即使是 sudo
。我使用带有name
和version
字段的虚拟package.json
创建了丢失的目录(name
应该与包名称匹配,version
可以是任何东西)。在那个文件夹中,我运行了npm link && npm unlink
,它成功了。
npm uninstall
来自本地库文件夹也可以。
sudo
如果您使用 nvm 之类的东西来安装节点,则不需要
npm list -g --depth=1
为我工作【参考方案2】:
您可以使用unlink
删除符号链接。
例如:
cd ~/projects/node-redis
npm link
cd ~/projects/node-bloggy
npm link redis # links to your local redis
从你的 package.json 重新安装:
npm unlink redis
npm install
https://www.tachyonstemplates.com/npm-cheat-sheet/#unlinking-a-npm-package-from-an-application
【讨论】:
unlink
与npm
的rm
不一样吗?他们共享同一个手册页(uninstall
)。
@nwinkler 你能分享一个链接吗?
npm 源代码使用 rm、unlink、remove、r 和 un 作为卸载别名:github.com/npm/npm/blob/… - 见第 66 行。
这个答案底部的链接对我来说已经死了。
npm i
不删除所有链接吗?【参考方案3】:
npm 链接痛:
-模块名称gulp-task
-项目名称project-x
你想链接gulp-task:
1:进入 gulp-task 目录,然后执行 npm link
这会将项目符号链接到您的全局模块
2: 转到你的项目 project-x 然后执行npm install
确保删除当前 node_modules 目录
现在你想消除这种疯狂并使用真正的gulp-task,我们有两个选择:
选项 1:通过 npm 取消链接:
1:转到您的项目并执行npm unlink gulp-task
这将删除链接的已安装模块
2:进入 gulp-task 目录并执行npm unlink
以删除符号链接。 注意我们没有使用模块的名称
3:庆祝
如果这不起作用,请通过查找全局安装的模块进行验证。我的位置 ls -la /usr/local/lib/node_modules/
如果您使用的是 nvm,它将是不同的路径
选项 2:像普通的 linux 大师一样删除符号链接
1:找到你的全局依赖cd /usr/local/lib/node_modules/
2:删除符号链接只需使用rm
命令
rm gulp-task
确保最后没有/
rm gulp-task/
错了 ??
rm gulp-task
✔️
【讨论】:
做一个普通的npm-unlink
删除了我项目中的所有包。【参考方案4】:
如果您在更改后不小心做了npm link
generator-webapp 之类的事情,您可以通过克隆正确的生成器并链接那个来修复它。
git clone https://github.com/yeoman/generator-webapp.git;
# for fixing generator-webapp, replace with your required repository
cd generator-webapp;
npm link;
【讨论】:
【参考方案5】:“npm install”将使用“npm link”安装的 node_modules 中的所有依赖项替换为来自 npmjs 的版本(在 package.json 中指定)
【讨论】:
OP 询问如何卸载使用npm link
而不是npm link somepackage
安装的软件包。您的建议会将包留在全局 node_modules 中。以上是关于如何卸载使用 npm 链接安装的软件包?的主要内容,如果未能解决你的问题,请参考以下文章