Npm bağlantısı kullanılarak yüklenmiş bir paketi nasıl kaldırabilirim?


162

sudo npm linkPaketin dizininde kullanarak bir düğüm paketi yüklerken, geliştirme işlemini tamamladıktan sonra paketi nasıl kaldırabilirim?

npm linkpaketi sistemin global paket konumuna ('/ usr / local / lib`) sembolik bir bağlantı olarak kurar. Bu, paketi geliştirmeye devam ederken tekrar tekrar yüklemenize gerek kalmadan test etmenizi sağlar.

Bağlantıyı tekrar kaldırmak için hangi npm komutunu çalıştırmam gerekiyor?

Yanıtlar:


166

Paket, kurulu paketleri kaldırmak için kullanılabilen aynı kaldırma veya rm komutunu kullanarak kaldırılabilir . Akılda tutulması gereken tek şey, bağlantının global olarak kaldırılması gerektiğidir - --globalbayrağın sağlanması gerekir.

Global olarak bağlı foopaketi kaldırmak için aşağıdaki komut kullanılabilir ( sudogerekirse kurulumunuza ve izinlerinize bağlı olarak)

sudo npm rm --global foo

Bu paketi kaldıracaktır.

Bir paketin kurulu olup olmadığını kontrol etmek için npm lskomut kullanılabilir:

npm ls --global foo

5
Bağlantılı paketin adından emin değilseniz, npm ls --global --depth 0tüm üst düzey bağımlılıklarınızı da
listeleyebilirsiniz

1
Bu bile izin sorunları nedeniyle benim için işe yaramadı sudo. Ben ve alan ile bir kukla package.jsonile eksik dizini yarattım ( paket adıyla eşleşmeli, herhangi bir şey olabilir). O klasörün içinde koştum ve işe yaradı. nameversionnameversionnpm link && npm unlink
silvenon

npm uninstallyerel kütüphane klasöründen de çalışacaktır.
backslashN

132

unlinksembolik bağlantısı kaldırmak için kullanabilirsiniz .

Örneğin:

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

Package.json dosyasından yeniden yüklemek için:

npm unlink redis
npm install

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


4
Değil mi unlinkaynı rmiçin npm? Aynı adam sayfasını paylaşırlar uninstall.
nwinkler

1
@nwinkler bir bağlantı paylaşabilir misiniz?
Blair Anderson

12
Npm kaynak kodu, kaldırma için takma ad olarak rm, unlink, remove, r ve un kullanır: github.com/npm/npm/blob/… - bkz. Satır 66ff.
nwinkler

Bu cevabın altındaki bağlantı benim için öldü.
Liron Yahdav

Does not npm izaten tüm bağlantılar kaldırılsın mı?
Toivo Säwén

19

npm bağlantı ağrısı:

Modül adı yutkunma-görev

-Proje adı projesi-x


Gulp-task'ı bağlamak istiyorsunuz :

1: gulp-task dizinine gidin ve npm link , projeyi global modüllerinize yönlendirin

2: Project-x projenize gidin, ardından npm installgeçerli node_modules dizinini kaldırdığınızdan emin olun.


Şimdi bu çılgınlığı ortadan kaldırmak ve gerçek yudum görevini kullanmak istiyorsunuz , iki seçeneğimiz var:

1. Seçenek: npm ile bağlantıyı kaldırın:

1: Projenize gidin ve bunu yapın npm unlink gulp-taskbağlı kurulu modülü kaldıracak

2: gulp-task dizinine gidin ve symlink'inpm unlink kaldırmak için yapın. Modülün adını kullanmadığına dikkat edin

3: kutlamak


Bu işe yaramazsa, global kurulu modülünüzü bularak doğrulayın. ls -la /usr/local/lib/node_modules/Eğer konum nvm kullanıyorsanız farklı bir yol olacaktır


2. Seçenek: Symlink'i normal bir linux guru gibi kaldırın

1: Global bağımlılıklarınızı bulun cd /usr/local/lib/node_modules/

2: Symlink'i kaldırmak sadece rmkomutu kullanıyor

rm gulp-task /sonunda olmadığından emin ol

rm gulp-task/ yanlış 🔥🚨

rm gulp-task ✔️


bir ova yapmak npm-unlinkprojemdeki tüm paketleri kaldırdı .
cst1992

2

Yanlışlıkla böyle bir şey yaptıysanız npm linkbunu değiştirdikten sonra jeneratör-webapp, doğru jeneratör klonlama ve bağlayarak tamir edebiliriz o .

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", "npm link" yüklü node_modules'ünüzdeki tüm bağımlılıkları npmjs (package.json dosyasında belirtilen) sürümleriyle değiştirir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.