Windows'daki node.js modülleri için varsayılan genel yükleme dizini değiştirilsin mi?


134

Benim windows kurulum PATHiçerir C:\Program Files\nodejs, çalıştırılabilir nerede node.exe. Ben başlatmak mümkün değilim nodeyanı sıra, kabuğundan npm. Yeni yürütülebilir dosyaların da yüklenmesini istiyorum C:\Program Files\nodejs, ancak başarılması imkansız görünüyor.

Ayar NODE_PATHve NODE_MODULESdeğişkenler hiçbir şeyi değiştirmez: işler hala yüklü%appdata%\npm varsayılan .

Genel kurulum yolunu nasıl değiştirebilirim?


5
Muhtemelen gremo, düğümlerle ilgili tüm bağımlılıkları tek bir yerde tutmak istediği için. Sorun, düğümlerin güncellenmesi ile kurulu tüm paketleri kaybetmenizdir. Diğer yandan, npm'yi kullanıcının% appdata% klasörüne koymak, aynı makinedeki diğer kullanıcıların erişememesini sağlar. Normal kullanıcı veya yönetici olarak kurmayı düşünün.
Volker E.


1
% AppData % öğesinin daha denetimli bir konuma taşınması benim için çok mantıklı, çünkü bana oldukça% temp% -ish geliyor. (Aynısını Firefox profilleri ve diğerleri için de yapıyor). Bununla birlikte C:\Program Files, sürekli yönetici haklarıyla ilgili sıkıntılara hazırdır. Do Hareket etmeyi tercih ederim D:\my-repository\npm.
Frank Nocke

2
@WiredPrairie, çünkü kullanıcı klasörlerine kurulum oldukça aptalca. 'Global olarak' paketleri kurmanın asıl amacı, bir sistemin bir bütün olarak bu paketlere erişebilmesidir.
Michael Trouw

4
Bunu yapmak için bir neden var: Ağımda AppData klasöründen kod yürütmenize izin verilmiyor, çünkü kötü amaçlı yazılımların, özellikle CodeLocker'ın bu şekilde indirilip çalıştırıldığı sık sık. Kötü amaçlı yazılımlara karşı ekstra bir koruma katmanıdır. Düğüm oraya bir şeyler yüklediğinden, yükleme konumunu taşımadan veya sistemimdeki güvenliği azaltmadan düğüm modüllerini çalıştıramıyorum.
Steve Hiner

Yanıtlar:


81

İhtiyacınız olan her şey npm-foldersbelgeleri okumak . Ben bunu doğrulayamadığı şimdi benim Win dizüstü başlatmak istemem, ama sadece değiştirmelisiniz prefixiçin c:\Program Files\nodejsconfig dosyanızda. Tüm kullanıcılar için küresel olarak değiştirmek istiyorsanız, c:\Program Files\nodejs\npmrcdosyayı düzenleyin , aksi takdirde oluşturun / düzenleyin c:\Users\{username}\.npmrc.

Ancak bu değişikliğin muhtemelen bazı yan etkileri olacaktır, bu yüzden bu tartışmayı daha önce okuyun . Bence senin fikrin iyi değil.


33
Bulduğum npmrcen dosyayıC:\path\to\nodejs\node_modules\npm\npmrc
Volker E.

3
npm config set cache <new cache location> --globalmodülleri kurarken sorunla karşılaşırsanız ve önbellek paylaşılan bir sürücüde ise , npm önbellek konumunu yerel bir dizine değiştirin . ENOENT: no such file or directoryÖnbellek paylaşılan bir sürücüdeyken bu hatayı aldım
redDevil

1
Sistem PATH değişkenini yeni npm klasörünü gösterecek şekilde güncellemeyi unutmayın.
Hayko Koryun

64

yüklemeye çalışmak Global paketleriC:\Program Files (x86)\nodejs\ bana Yönetici olarak çalıştır sorunları verdi , çünkü npm yüklemeye çalışıyordu
C:\Program Files (x86)\nodejs\node_modules\

Bu sorunu çözmek için genel yükleme dizinini şu şekilde değiştirin C:\Users\{username}\AppData\Roaming\npm:

içinde C:\Users\{username}\ , .npmrciçeriği olan bir dosya oluşturun :

prefix = "C:\\Users\\{username}\\AppData\\Roaming\\npm"

referans

ortam
düğümü x86 yükleyicisi C:\Program Files (x86)\nodejs\Windows 7 Ultimate N 64 bit SP1'e
node --version: v0.10.28
npm --version: 1.4.10


Bu npm 2.1.6 kullanıyordum garip ve tüm global modülleri% appdata% / npm'ye yüklüyordu, şimdi 2.6.1'e güncelledim, c: \ windows \ 'a yüklemeye çalışıyor (ve başarısız oluyor) program dosyaları \ .. Bu davranışın ne zaman değiştiğini biliyor musunuz?
WORMSS


npm yüklediğim farklı bir yolla ilgiliydi. Fark için teşekkürler.
WORMSS

2
npm config set ön eki C: \ Users \ {kullanıcı adı} \ AppData \ Roaming \ npm
Bernhard Döbler

62

Buna cevabımı başka bir soruya verdiğim cevapta görebilirsiniz .


Windows'da genel yükleme yolu aslında kullanıcının profil dizinindedir

  • %USERPROFILE%\AppData\Roaming\npm
  • %USERPROFILE%\AppData\Roaming\npm-cache
  • UYARI: Farklı bir kullanıcı olarak zamanlanmış etkinlikler veya başka bir otomasyon yapıyorsanız npm install, bu kullanıcı olarak çalıştığınızdan emin olun . Bazı modüller / yardımcı programlar global olarak kurulmalıdır.
  • INSTALLER HATALAR: Bu dizinleri oluşturmanız veya ...\npmdizini kullanıcı yolunuza kendiniz eklemeniz gerekebilir .

Tüm kullanıcıların "global" konumunu daha uygun bir paylaşılan global konuma değiştirmek için %ALLUSERSPROFILE%\(npm|npm-cache)(bunu yönetici olarak yapın):

  • oluşturduğunuz bir [NODE_INSTALL_PATH]\etc\ dizin
    • npm config --global ...eylemleri denemeden önce buna ihtiyaç vardır
  • npm modülleri için global (admin) konumlar oluşturun
    • C:\ProgramData\npm-cache - npm modülleri buraya gelecek
    • C:\ProgramData\npm - global olarak kurulmuş modüller için ikili komut dosyaları buraya gelecek
    • C:\ProgramData\npm\node_modules - global olarak kurulmuş modüller buraya gelecek
    • izinleri uygun şekilde ayarla
      • yöneticiler: değiştir
      • kimliği doğrulanmış kullanıcılar: okuma / yürütme
  • Genel yapılandırma ayarlarını belirleme (Yönetici Komut İstemi)
    • npm config --global set prefix "C:\ProgramData\npm"
    • npm config --global set cache "C:\ProgramData\npm-cache"
  • C:\ProgramData\npmSisteminizin Yol ortamı değişkenine ekleyin

Kullanıcınızın "genel" konumunu %LOCALAPPDATA%\(npm|npm-cache)bunun yerine yol olarak değiştirmek istiyorsanız :

  • Gerekli dizinleri oluşturun
    • C:\Users\YOURNAME\AppData\Local\npm-cache - npm modülleri buraya gelecek
    • C:\Users\YOURNAME\AppData\Local\npm - kurulu modüller için ikili komut dosyaları buraya gelecek
    • C:\Users\YOURNAME\AppData\Local\npm\node_modules - global olarak kurulmuş modüller buraya gelecek
  • Npm'yi yapılandır
    • npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
    • npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
  • Ortamınıza yeni npm yolunu ekleyin PATH.
    • setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"

1
Orta konumunuza göre global konumu C: \ ProgramData olarak ayarlamak, Windows ortamında bunun için en iyi yer gibi görünüyor, ancak önek kullanıldığında global yapılandırma dosyasındaki öneki nasıl ayarlayacağınızı göremiyorum global yapılandırma dosyasını bulun. Yerleşik yapılandırma dosyasını C: \ Program Files \ nodejs \ node_modules \ npm \ npmrc'yi düzenleyerek aynı sonucu elde ettim, ancak bu değişikliğin bir aşamada bir güncellemenin üzerine yazılabileceğinden şüpheleniyorum.
19:06

@oenpelli Bu durumda "global", kullanıcının .npmrcev / profil dizinindeki dosyasıdır. Tüm kullanıcılar için ayarlanması gerekir.
Tracker1

Windows'ta yönetici iznim yoksa genel yüklemeyi nasıl değiştirebilirim?
liam xu

liam, bunu .npmrcprofil dizininizdeki bir dosya aracılığıyla kullanıcı için ayarlayabilirsiniz ... yine de, o noktada ymmv.
Tracker1

19

chocolatey@Tracker'ın kurulum konseptine ve önerisine dayanarak, benim için işe yarayan aşağıdakileri yapmaktı ve pencerelerdeki tüm kullanıcılar nodejsve ile çalışmaktan mutlu oldular npm.

Yönetici grubunun üyesi olan herhangi bir kullanıcı C:\ProgramData\nodejsiçin kurulum dizini olarak seçin nodejsve kurun nodejs.

Bu chocolatey ile şu şekilde yapılabilir: choco install nodejs.install -ia "'INSTALLDIR=C:\ProgramData\nodejs'"

Ardından npm-cache, yükleme dizininin kökünde adlı bir klasör oluşturun .C:\ProgramData\nodejs\npm-cache .

etcKurulum dizininin kökünde, yukarıda belirtilenlerden sonra olacak bir klasör oluşturun C:\ProgramData\nodejs\etc.

NODEOrtam değişkenini olarak ayarlayın C:\ProgramData\nodejs.

NODE_PATHOrtam değişkenini olarak ayarlayın C:\ProgramData\nodejs\node_modules.

%NODE%Yukarıda daha önce oluşturulan ortam değişkeninin eklendiğini (veya yolunun) %PATH%ortam değişkenine eklendiğinden emin olun .

Düzenleme %NODE_PATH%\npm\npmrcşu içerikleprefix=C:\ProgramData\nodejs

Komut isteminde genel yapılandırmayı şu şekilde ayarlayın ...

npm config --global set prefix "C:\ProgramData\nodejs"

npm config --global set cache "C:\ProgramData\nodejs\npm-cache"

Yukarıdaki adımların tercihen sırayla ve npm ( npm -g install npm@latest) güncellenmeden ya da herhangi bir npmmodül takılmadan önce yapılması önemlidir .

Yukarıdaki adımları nodejsuygulamak, uygun izinlere sahip tüm kullanıcılar tarafından kolayca erişilebilen, sistem genelinde kurulum olarak çalışmamıza yardımcı oldu . Her kullanıcı daha sonra çalıştırabilirsiniz nodeve npmgerekli.


'npm yapılandırma listesi'nin çıktısı nedir? Ayrıca, Windows veya Linux üzerinde mi çalışıyorsunuz?
Damilola

Her ikisini de denedim. npm config add prefixçalışır, ancak burada belirtilen ortam değişkenlerinden hiçbiri yoktur. Başka bir soru açmak istemedim, çünkü bu soru bunu kapsıyor, ancak cevaplar (yanı sıra npm config).
trysis

NODE ortam değişkeni esasen sadece ikili dosyaları göstermek içindir. Yine de öneki ve önbelleği (önceden ayarlanmamışsa) yordamda belirtildiği gibi ayarlamanız gerekir.
Damilola

Ohh, teşekkürler. Bu, cevaplardan veya Google'daki başka bir yerden çok açık değildi. Bu programsal olarak değiştirmek daha kolay olduğu için ortam değişkenleri arıyordum, ama tek katlı Bash komutları da tamam, sanırım.
trysis

Bu benim için güzel çalıştı. Ayrıntılı talimatlar için teşekkür ederiz!
ErnestoP

15

Npm paketlerinin genel yükleme flokasyonunu ayarlamak için bu komutu kullanmalısınız

(git bash) npm config --global set prefix </path/you/want/to/use>/npm

(Cmd / git-Cmd) npm config --global set prefix <drive:\path\you\want\to\use>\npm

Ayrıca, npm-cache hemen yanındaki konumu . (pencerelerde normal bir nodejs kurulumunda olduğu gibi)

(git bash) npm config --global set cache </path/you/want/to/use>/npm-cache

(Cmd / git-Cmd) npm config --global set cache <drive:\path\you\want\to\use>\npm-cache


1
Yardımcı olduğuma sevindim. Ayrıca, ortamınızı her değiştirdiğinizde bunu gerçekleştirmek için bir shel komut dosyası veya toplu iş dosyası oluşturmak harika bir fikir olacaktır. En azından ben de bunu yapıyorum
davejoem

Ayrıca yolda boşluklar varsa "eklemeye değer. Örneğin "C:\Program Files\blah".
taylorswiftfan

7
  • Adım 1 :

    npm config get öneki

    • Varsayılan Yol: %USERPROFILE%\AppData\Roaming\npm
  • 2. Adım :

    npm config önbellek al

    • Varsayılan Yol: %USERPROFILE%\AppData\Roaming\npm-cache
  • 3. Adım :

    npm yapılandırma kümesi öneki \ npm

    • misal npm config set prefix C:\\dev\\node\\npm
  • 4. Adım :

    npm yapılandırma küme önbelleği \ npm-cache

    • misal npm config set cache C:\\dev\\node\\npm-cache

Yolların gerektiği gibi güncellenip güncellenmediğini kontrol etmek için 1. ve 2. adımları tekrarlayın

Bu kadar. Global paketleri her yüklediğinizde, \ npm \ node_modules içine kurulduğunu görmelisiniz.


Teşekkürler çözümün sorunumu çözdü, son 2 haftadan itibaren sorunu çözmeye çalışıyordum, Aslında Windows kullanıcı yolumun içinde ABC XYZ WJS gibi boşluklar vardı, bu yüzden yolu sadece bir kelimeye değiştirdim, bundan sonra npm kurulumum verdikten sonra Bu nedenle, çözümünüz önbelleği temizlememe ve önbelleği yeni konumuma ayarlamama yardımcı oldu.
Tahir Afridi

4

Varsayılan global klasör C:\Users\{username}\AppData\Roaming\npm. İçinde bir .npmrcdosya oluşturabilir (yoksa) C:\Users\{username}\ve ekleyebilirsiniz prefix = "path\\to\\yourglobalfolder". Pencerelerde yolun ayrılması gerektiğini unutmayın double back-slash.


3

C: \ Users {kullanıcı adı} \ AppData \ Roaming \ npm'den bir Windows sembolik bağlantı kullanma ve C: \ Users {kullanıcıadı} \ AppData \ Roaming \ npm-cache yollarından benim için harika çalıştı.

Sembolik bağlantı nasıl eklenir

resim açıklamasını buraya girin


1

Windows'ta, C diskindeki npm veya nodejs klasörünü başka bir konuma taşımak istiyorsanız, ancak yine de düğüm ve npm'nin iyi çalıştığından emin olursanız, şöyle bir sembol bağlantısı oluşturabilirsiniz: Açık Komut İstemi:

mklink /D "your_location_want_to_create_symlink" "location_of_node_npm_file"

Misal:

mklink /D "C:\Users\MyUser\AppData\Roaming\npm" "D:\Nodejs Data\npm"

Şimdi npm klasörü için bir symlink oluşturdunuz, bu symlink D:\Nodejs Data\npmHer şey iyi çalışacaktır.


0

Buradaki cevapların çoğunu denedim, benim durumumda hiçbir şey işe yaramadı. Bu yüzden env değişkenlerimdeki Temp konumunu C: \ npm olarak değiştirdim. Sonra çalışmaya başladı. Bu iyi bir fikir değil, geçici bir çözümdür.


0

Düğüm klasörünü program dosya klasöründen tamamen silin. Node.js dosyasını kaldırın ve yeniden yükleyin. değişiklik Ortam değişkeni yolu PATH. .npmrc dosyasını C: \ users \ kullanıcı adınızdan silin


2
İfadenizi destekleyen herhangi bir belge veya kaynak var mı? Şu anki durumunda yazıldığı gibi, önerinizin gerçekten kendiniz denemeden çalışıp çalışmadığını söylemek zor, aksi takdirde kaydedilebilecek zaman alır.
Filnor

0

fazla yapılandırma gerektirmez, sadece gelişmiş sistem ayarlarına gidin, düğümünüzü kurduğunuz yolu kopyalayın ve sadece bir ortam değişkeni oluşturun ve komut isteminizde node -v komutuyla kontrol edin!


0

Windows'ta node.js (npm) modülleri için varsayılan genel yükleme dizinini değiştirmek için, 2 yolu düzeltmeniz gerekir.

İlk olarak, aşağıdaki komutları kullanarak global olarak kurmaya çalıştığınızda, düğüm modüllerinin yüklendiği geçerli yolu kontrol edin:

npm listesi -g --depth = 0

Size, düğüm modüllerinin şu anda yüklendiği geçerli yolu döndürür. Örnek: D: \ vsc \ typescript

Şimdi npm ve npm-cache klasörünü görmek için aşağıdaki yolu ziyaret edin. C: \ Kullanıcılar \ kullanıcı adı (VEYA Sayı) \ AppData \ Roaming

C sürücünüzün Dolaşım klasöründe npm ve npm-cache klasörü bulacaksınız. + Npm + klasörüne tıklayın ve yolu seçin [Sadece bar yoluna tıklayın otomatik olarak seçilecektir, kopyalayın].Bu, seçmeniz gereken bir yol görüntüsüdür

Bu yolu kopyaladıktan sonra bunu, değişken adı Path (ad olarak seçebileceğiniz herhangi bir şey) ile ortam değişkenlerine ayarlayın. Şimdi npm klasörünüzün yolunu ayarladınız, şimdi bu öneki ayarlama zamanı. Npm klasörünün içine gidin ve node_module klasörünün olup olmadığını kontrol edin, eğer node_modules adında yeni bir klasör oluşturun. Tüm global modüller, tüm adımları tamamladıktan sonra bu klasöre geleceksiniz.

Son Adım: CMD'ye gidin ve aşağıdaki komutu sağlayın:

npm set öneki C: \ Users \ kullanıcı adı (Number) \ AppData \ Roaming \ npm \ node_modules

Yine bu, ortam değişkeni için seçtiğimiz yolun aynısıdır, yola sadece bir klasör daha ekliyoruz ve bu da node_module.

All Set .... Şimdi dene ... Çalışacak ..


0

Komutu izleyerek genel düğüm paketi kurulumunuzun geçerli yolunu bulun.

npm listesi -g --depth = 0

Komutu izleyerek bu yolu düzeltmek için değiştirin.

npm set öneki C: \ Users \ kullanıcı adı (Number) \ AppData \ Roaming \ npm \ node_modules

Benim için çalıştı. Daha iyi anlamak için önceki cevabımı okuyun.

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.