如何卸载使用 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】:

可以使用相同的 uninstallrm 命令来卸载该软件包,该命令可用于删除已安装的软件包。唯一要记住的是链接需要全局卸载 - 需要提供 --global 标志。

为了卸载全局链接的foo包,可以使用以下命令(必要时使用sudo,取决于您的设置和权限)

sudo npm rm --global foo

这将卸载软件包。

要检查是否安装了包,可以使用npm ls 命令:

npm ls --global foo

【讨论】:

如果您不确定链接包的名称,您也可以使用npm ls --global --depth 0 列出所有***依赖项 由于权限问题,这对我不起作用,即使是 sudo。我使用带有nameversion 字段的虚拟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

【讨论】:

unlinknpmrm 不一样吗?他们共享同一个手册页(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 链接安装的软件包?的主要内容,如果未能解决你的问题,请参考以下文章

npm学习之如何安装全局包更新全局安装的包卸载全局安装的包

如何卸载 npm 包?

如何卸载Node、NPM、yarn

如何卸载安装的xampp软件

如何在 Node.js 中卸载 npm 模块?

如何使用rpm 命令来卸载Mysql软件