Bagaimana cara menghapus paket yang diinstal menggunakan tautan npm?

162

Saat memasang paket node menggunakan sudo npm linkdalam direktori paket, bagaimana saya bisa menghapus instalasi paket setelah saya selesai dengan pengembangan?

npm linkmenginstal paket sebagai tautan simbolis di lokasi paket global sistem ('/ usr / local / lib`). Ini memungkinkan Anda untuk menguji paket saat masih mengembangkannya, tanpa harus menginstalnya berulang-ulang.

Perintah npm mana yang harus saya jalankan untuk menghapus tautan lagi?

nwinkler
sumber

Jawaban:

166

Paket ini dapat dihapus menggunakan yang sama uninstall atau rm perintah yang dapat digunakan untuk menghapus paket yang diinstal. Satu-satunya hal yang perlu diingat adalah bahwa tautan harus dihapus instalasinya secara global - --globalbendera harus disediakan.

Untuk menghapus foopaket yang terhubung secara global , perintah berikut dapat digunakan (menggunakan sudojika perlu, tergantung pada pengaturan dan izin Anda)

sudo npm rm --global foo

Ini akan menghapus paket.

Untuk memeriksa apakah suatu paket diinstal, npm lsperintah dapat digunakan:

npm ls --global foo
nwinkler
sumber
5
Jika Anda tidak yakin nama paket yang ditautkan, Anda juga dapat melakukannya npm ls --global --depth 0untuk mencantumkan semua dependensi tingkat atas Anda
schu34
1
Ini tidak berhasil untuk saya karena masalah izin, bahkan dengan sudo. Saya membuat direktori yang hilang dengan boneka package.jsondengan bidang namedan version( nameharus cocok dengan nama paket, versionbisa apa saja). Di dalam folder itu saya berlari npm link && npm unlinkdan berhasil.
silvenon
npm uninstalldari folder perpustakaan lokal juga akan berfungsi.
backslashN
132

Anda dapat menggunakan unlinkuntuk menghapus symlink.

Sebagai contoh:

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

Untuk menginstal ulang dari package.json Anda:

npm unlink redis
npm install

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

Blair Anderson
sumber
4
Tidak unlinksama dengan rmuntuk npm? Mereka berbagi halaman manual yang sama (dengan uninstall).
nwinkler
1
@nwinkler dapatkah Anda membagikan tautan?
Blair Anderson
12
Kode sumber npm menggunakan rm, putuskan tautan, hapus, r dan hapus sebagai alias untuk menghapus instalasi: github.com/npm/npm/blob/… - lihat baris 66ff.
nwinkler
Tautan di bagian bawah jawaban ini sudah mati untuk saya.
Liron Yahdav
Lagi pula, tidak npm imenghapus semua tautan?
Toivo Säwén
19

nyeri tautan npm:

Nama -Module menelan-tugas

Nama proyek-proyek-x


Anda ingin menghubungkan tugas-tegukan :

1: Buka direktori gulp-task, lalu lakukan npm link ini akan menghubungkan proyek ke modul global Anda

2: Buka proyek proyek Anda-x lalu npm installpastikan untuk menghapus direktori node_modules saat ini


Sekarang Anda ingin menghapus kegilaan ini dan menggunakan tugas tegukan nyata , kami memiliki dua opsi:

Opsi 1: Putuskan tautan melalui npm:

1: Buka proyek Anda dan lakukan npm unlink gulp-task ini akan menghapus modul terpasang yang ditautkan

2: Buka direktori gulp-task dan lakukan npm unlinkuntuk menghapus symlink. Perhatikan kami tidak menggunakan nama modul

3: rayakan


Bagaimana jika ini tidak berhasil, verifikasi dengan mencari modul global Anda yang terinstal. Lokasi saya adalah ls -la /usr/local/lib/node_modules/jika Anda menggunakan nvm, itu akan menjadi jalur yang berbeda


Opsi 2: Hapus symlink seperti guru linux normal

1: cari ketergantungan global Anda cd /usr/local/lib/node_modules/

2: menghapus symlink hanya menggunakan rmperintah

rm gulp-task pastikan Anda tidak memiliki /pada akhirnya

rm gulp-task/ salah 🔥🚨

rm gulp-task ✔️

KhaledMohamedP
sumber
melakukan polos npm-unlinkmenghapus semua paket di proyek saya.
cst1992
2

Jika Anda telah melakukan sesuatu seperti sengaja npm linkgenerator webapp setelah Anda berubah, Anda dapat memperbaikinya dengan kloning generator yang tepat dan menghubungkan bahwa .

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

"npm install" menggantikan semua dependensi di node_modules Anda yang terinstal dengan "npm link" dengan versi dari npmjs (ditentukan dalam package.json Anda)

Eugenio
sumber