2013-09-02 14 views
16

Güncel Directory Dış Paketi Kurulum:NPM G/my-proje dizini içindeki/home/eyvan gelen UÖM'yi kullanılarak ekspres paket yüklemeye çalışırken

npm install express 

[email protected] ../node_modules/express 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] ([email protected]) 
└── [email protected] ([email protected]) 

garip bir şey simdiki ekspres paket yüklenmez npm olduğunu (/ home/iwan/projem/node_modules/express), ancak/home/iwan/node_modules/express içinde.

Bir şey mi özledim?

cevap

47

Geçerli dizinde node_modules dizini yoksa, NPM onu bulana kadar yüksek dizinlerde arar. Dolayısıyla, üst dizinin bir node_modules dizini varsa, NPM, modüllerin yüklenmesi gereken yeri varsayar.

Bunun etrafındaki hızlı bir yol, modüllerin yerleştirilmesini istediğiniz boş bir node_modules dizini oluşturmaktır.

+0

Ah, teşekkürler @Brad. Şimdi açık. –

+1

Aslında ben tersi davranışı arayan google dan geldim, bu yüzden kurulumdan önce her zaman 'cd ..' gitmek zorunda değilim. Çözüm yine - bu yanıtın belirttiği gibi - ana dizinde 'node_modules 'oluşturmak. –

+0

Hayır, bu işe yaramıyor. Eğer 'npm install --save redux' yüklüyse, bu klasöre yükledim komutum ('node_modules' klasörünü oluşturarak)' ve 'ana klasörde bulunan' node_modules 'klasörlerini kontrol etmedi. –

2

npm ile paketleri yüklemenin en iyi yolu, package.json dosyasını yapmaktır. Bunun gibi, sadece app olarak smae dizinine koyun. Bir örnek package.json dosyası bu gibi görünebilir:

{ 
    "name": "application-name", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
    "start": "node app.js" 
    }, 
    "dependencies": { 
    "express": "3.3.5", 
    "jade": "*", 
    "less-middleware": "*", 
    "ejs": "*", 
    "mongoose": "3.6.*" 
    } 
} 

bağımlılıkları listeye bir göz atın. Sadece istediğiniz modülü ekleyin, örneğin, underscore. Sadece bağımlılıklar dict eklemek. böylece gibi:

{ 
    "name": "application-name", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
    "start": "node app.js" 
    }, 
    "dependencies": { 
    "express": "3.3.5", 
    "jade": "*", 
    "less-middleware": "*", 
    "ejs": "*", 
    "mongoose": "3.6.*", 
    "underscore": "*" <-------------- Added 
    } 
} 

Sonra dizine sından ve sadece npm install ve bam koş! Tüm paketler ve onların bağımlılıkları sizin için yüklenecektir. Tüm işi yapacak ve bu sizin için node_modules klasörünüzü yapmak anlamına gelir. Bu benim app dizini benziyor nasıl: Ayrıca https://docs.npmjs.com/files/package.json web sayfasından yönergeleri kullanarak boş bir package.json dosyası oluşturabilir

enter image description here

+0

Harika! Teşekkür ederim. package.json uygulaması daha net ve bilgilendirici görünüyor. –

+0

@KurniawanJunaidy Sizin için çalışmışsa, lütfen cevap verin ve cevabı kabul edin. –

+1

Lütfen bu örneği kullanmayın. Üretiminizde paketleriniz için * kullanıyorsanız, sonunda değişiklikleri kırmak ve bunları düzeltmek için çok fazla zaman harcayacaksınız. Eğer aktif geliştirme aşamasındaysanız ve paketlerinizin güncel olduğundan emin olmak istiyorsanız, emin olun, yıldız, tild veya havuç kullanın, ancak bunları üretimde bırakmayın. – SgtPooki

0

. Ardından bunu proje klasörünüze yerleştirin ve npm install yazın.

İlgili konular