如何卸载使用npm link安装的软件包?


162

sudo npm link在软件包目录中使用安装节点软件包时,完成开发后如何卸载软件包?

npm link将软件包安装为系统全局软件包位置('/ usr / local / lib`)中的符号链接。这样,您就可以在仍然开发包的情况下测试该包,而不必一遍又一遍地安装它。

我需要运行哪个npm命令来再次删除链接?

Answers:


166

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

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

sudo npm rm --global foo

这将卸载该软件包。

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

npm ls --global foo

5
如果不确定链接包的名称,也npm ls --global --depth 0可以列出所有顶级依赖项
schu34 '17

1
由于权限问题,即使使用,这也对我不起作用sudo。我package.jsonnameversion字段创建了一个虚拟目录(该目录name应与软件包名称匹配,version可以是任何东西)。在该文件夹中,我运行了npm link && npm unlink它并且起作用了。
silvenon

npm uninstall从本地库文件夹也将起作用。
反斜杠N

132

您可以使用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


4
是不是unlink一样rmnpm?他们共享相同的手册页(带有uninstall)。
nwinkler 2014年

1
您可以分享@nwinkler的链接吗?
布莱尔·安德森

12
npm源代码使用rm,unlink,remove,r和un作为卸载的别名:github.com/npm/npm/blob/…-参见第66ff行。
nwinkler 2014年

对于我来说,此答案底部的链接已死。
Liron Yahdav

npm i仍然不删除所有链接吗?
ToivoSäwén

19

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删除我的项目中的所有软件包。
cst1992

2

如果你已经做了一些类似意外npm link你已经改变后,发电机的webapp,您可以通过克隆权发电机和连接解决它认为

git clone https://github.com/yeoman/generator-webapp.git;
# for fixing generator-webapp, replace with your required repository
cd generator-webapp;
npm link;

0

“ npm install”将npmjs中的版本替换为由“ npm link”安装的node_modules中的所有依赖项(在package.json中指定)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.