¿Cómo desinstalo un paquete instalado usando el enlace npm?

162

Al instalar un paquete de nodo utilizando sudo npm linkel directorio del paquete, ¿cómo puedo desinstalar el paquete una vez que haya terminado con el desarrollo?

npm linkinstala el paquete como un enlace simbólico en la ubicación global del paquete del sistema ('/ usr / local / lib`). Esto le permite probar el paquete mientras lo desarrolla, sin tener que instalarlo una y otra vez.

¿Qué comando npm necesito ejecutar para eliminar el enlace nuevamente?

nwinkler
fuente

Respuestas:

166

El paquete se puede desinstalar utilizando el mismo comando de desinstalación o rm que se puede utilizar para eliminar los paquetes instalados. Lo único a tener en cuenta es que el enlace debe desinstalarse globalmente; se --globaldebe proporcionar el indicador.

Para desinstalar el foopaquete vinculado globalmente , se puede usar el siguiente comando (usar sudosi es necesario, dependiendo de su configuración y permisos)

sudo npm rm --global foo

Esto desinstalará el paquete.

Para verificar si un paquete está instalado, npm lsse puede usar el comando:

npm ls --global foo
nwinkler
fuente
55
Si no está seguro del nombre del paquete vinculado, también puede hacerlo npm ls --global --depth 0para enumerar todas sus dependencias de nivel superior
schu34
1
Esto no funcionó para mí debido a problemas de permisos, incluso con sudo. Creé el directorio que falta con un ficticio package.jsoncon el campo namey version( namedebe coincidir con el nombre del paquete, versionpuede ser cualquier cosa). Dentro de esa carpeta corrí npm link && npm unlinky funcionó.
silvenon
npm uninstalldesde la carpeta de la biblioteca local también funcionará.
barra invertidaN
132

puedes usar unlinkpara eliminar el enlace simbólico.

Por ejemplo:

cd ~/projects/node-redis 
npm link                 
cd ~/projects/node-bloggy
npm link redis             # links to your local redis

Para reinstalar desde su package.json:

npm unlink redis
npm install

https://www.tachyonstemplates.com/npm-cheat-sheet/#unlinking-a-npm-package-from-an-application

Blair Anderson
fuente
44
¿No es lo unlinkmismo que rmpara npm? Comparten la misma página de manual (con uninstall).
nwinkler
1
@nwinkler, ¿puedes compartir un enlace?
Blair Anderson
12
El código fuente de npm usa rm, unlink, remove, r y un como alias para la desinstalación: github.com/npm/npm/blob/… - vea la línea 66ff.
nwinkler
El enlace al final de esta respuesta está muerto para mí.
Liron Yahdav
¿No npm ielimina todos los enlaces de todos modos?
Toivo Säwén
19

npm link pain:

-Nombre de módulo gulp-task

-Nombre del proyecto proyecto-x


Desea vincular gulp-task :

1: Vaya al directorio gulp-task y luego haga npm linkesto para vincular el proyecto a sus módulos globales

2: Vaya a su proyecto project-x, luego npm installasegúrese de eliminar el directorio node_modules actual


Ahora que desea eliminar esta locura y usar la verdadera tarea de tragar , tenemos dos opciones:

Opción 1: desvincular a través de npm:

1: vaya a su proyecto y haga npm unlink gulp-taskesto eliminará el módulo instalado vinculado

2: Vaya al directorio gulp-task y npm unlinkelimine el enlace simbólico. Note que no usamos el nombre del módulo

3: celebrar


¿Qué pasa si esto no funciona? Verifique localizando su módulo global instalado. Mi ubicación es ls -la /usr/local/lib/node_modules/si está utilizando nvm , será una ruta diferente


Opción 2: eliminar el enlace simbólico como un gurú de Linux normal

1: ubica tus dependencias globales cd /usr/local/lib/node_modules/

2: eliminar el enlace simbólico es simplemente usar el rmcomando

rm gulp-task asegúrate de que no tienes /al final

rm gulp-task/ está mal 🔥🚨

rm gulp-task ✔️

KhaledMohamedP
fuente
haciendo un plano npm-unlinkeliminó todos los paquetes en mi proyecto.
cst1992
2

Si usted ha hecho algo parecido accidentalmente npm linkgenerador de aplicación web después de que lo haya cambiado, lo puede solucionar mediante la clonación del generador de la derecha y la vinculación que .

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

"npm install" reemplaza todas las dependencias en sus node_modules instalados con "npm link" con versiones de npmjs (especificadas en su package.json)

Eugenio
fuente