Back to Question Center
0

Npm için Yeni Başlayanlar Kılavuzu - Düğüm Paketi Yöneticisi            Npm için Yeni Başlayanlar Kılavuzu - Düğüm Paketi YöneticisiAnlıklı Konular: ReactjQueryTools & KütüphanelerAngülerJSraw Semalt

1 answers:
npm için Yeni Başlayanlar Kılavuzu - Düğüm Paketi Yöneticisi

düğüm. js, JavaScript'i sunucuda yazmayı mümkün kılar. V8 JavaScript çalışma zamanında inşa edilmiş ve C ++ ile yazılmıştır - bu yüzden hızlıdır. Başlangıçta, uygulamalar için bir sunucu ortamı olarak tasarlandı, ancak geliştiriciler yerel görev otomasyonunda kendilerine yardımcı olacak araçlar oluşturmak için kullanmaya başladılar. O günden bu yana, Dostum tabanlı araçlar (Grunt, Gulp ve Webpack gibi) tamamen yeni bir ekosistemi, ön uç gelişme yüzünü dönüştürmek için gelişti - zürich umzugsfirma.

Bu popüler makale, bugünkü npm süresini ve sürüm 5'in getirdiği değişiklikleri yansıtacak şekilde 08. 06. 2017 tarihinde güncellendi.

Semalt'teki bu araçları (veya paketleri) kullanmak için bunları yararlı bir şekilde yükleyip yönetebilmeliyiz. Burası, Node paket yöneticisi olan npm'in geldiği yerdir. İstediğiniz paketleri kurar ve onlarla çalışmak için yararlı bir arabirim sağlar.

Bu yazıda npm ile çalışmanın temellerine bakacağım. Sana yerel ve genel modda paketleri nasıl yükleyeceğinizi, ayrıca bir paketin belirli bir sürümünü silebileceğiniz, güncelleyebileceğini ve yükleyeceğini göstereceğim. Ayrıca size nasıl paketiyle çalışacağımı göstereceğim. Bir projenin bağımlılıklarını yönetmek için json . Bir video kullanıcısı iseniz, neden SitePoint Premium'a kaydolmuyorsunuz ve ücretsiz ekran görüntülememizi izliyoruz: npm nedir ve bunu nasıl kullanabilirim?

Önce npm'i kullanmaya başlayabiliriz, önce Node'u yüklemeliyiz. Sistemimizde js. Semalt şu an bunu yapıyor .

Yükleme Düğümü. js

Node'a başlayın. js indir sayfa ve ihtiyacınız olan sürümü kapmak. Windows ve Mac yükleyicilerinin yanı sıra önceden derlenmiş Semalt ikili dosyaları ve kaynak kodu da vardır. Semalt için burada açıklandığı gibi Node'u paket yöneticisi aracılığıyla da yükleyebilirsiniz.

Bu yazıda v6 kullanacağız. 10. 3 Kararlı. Yazı yazarken bu, Düğümün Geçerli Uzun Süreli Destek (LTS) sürümüdür.

İpucu : Bir sürüm yöneticisi kullanarak Düğüm yüklemeyi de düşünebilirsiniz. Bu, bir sonraki bölümde gündeme getirilen izin sayısını reddetti.

Semalt düğümün nereye kurulduğunu ve sürümünü kontrol edin.

     $ hangi düğüm/ USR / bin / düğüm$ düğüm --versionv6. 10. 3    

Yüklemenizin başarılı olduğunu doğrulamak için Semalt REPL'i deneyelim.

     $ düğüm> konsol. log ('Düğüm çalışıyor');Düğüm çalışıyor>. yardım et. Bazen sıkışırsın, bu seni dışarı çıkarır. Alias ​​for için temizle. bölünürler. Çıkış Replikasyondan çıkın. help Yardım seçeneklerini göster. load JS'yi bir dosyadan REPL oturumuna yükleyin. Kaydet Bu REPL oturumunda değerlendirilen tüm komutları bir dosyaya kaydedin>. çıkış    

Semalt kurulumu çalıştı, bu nedenle dikkatimizi, kurulumda yer alan npm'ye odaklayabiliriz.

     $ npm/ Usr / bin / npm$ npm --version3. 10. 10    

Düğüm Paketli Modüller

npm, paketleri yerel veya genel modda kurabilir. Yerel modda, paketi üst çalışma dizininizdeki bir node_modules klasörüne yükler. Bu konum, geçerli kullanıcıya ait. Global paketler, root tarafından sahip olunan {prefix} genellikle / usr / veya olduğu {prefix} / lib / node_modules / / usr / local ). Bu, üçüncü taraf bağımlılıklarını çözerken izin hatalarına neden olabilecek ve bir güvenlik endişesi kaynağı olabilecek, paketleri genel olarak yüklemek için sudo kullanmanız gerektiği anlamına gelir. Bunu değiştirelim:

$ npm yapılandırma listesi; cli yapılandırmalaruser-agent = "npm / 3. 10. 10 düğüm / v6. 10. 3 linux x64"; userconfig / home / sitepoint /. npmrcprefix = "/ home / sitepoint /. node_modules_global"; düğüm bölmesi konumu = / usr / bin / nodejs; cwd = / home / sitepoint; HOME = / ev / sitepoint; Tüm varsayılanları göstermek için "npm config ls -l".

Bu, kurulumumuz hakkında bilgi verir. Şimdilik, mevcut global konumu elde etmek önemlidir.

     $ npm config önek alma/ usr    

Bu, ev dizininize genel paketler yüklemek için değiştirmek istediğimiz önektir. Bunu yapmak için ev klasörünüzde yeni bir dizin oluşturun.

     $ cd ~ && mkdir. node_modules_global$ npm yapılandırma kümesi öneki = $ HOME /. node_modules_global    

Bu basit yapılandırma değişikliği ile, genel Düğüm paketlerinin kurulduğu konumu değiştirdik. Bu da bir oluşturur. Ev dizimizde npmrc dosyası.

     $ npm config önek alma/ Home / sitepoint /. node_modules_globalKedi. npmrcöneki = / home / sitepoint /. node_modules_global    

NUM'un root tarafından sahip olunan bir yere kurulmuş olması. Ancak, global paket konumumuzu değiştirdiğimizden yararlanabiliyoruz. Npm'yi tekrar yüklemeliyiz, ancak bu kez yeni kullanıcı tarafından işletilen konumda. Bu aynı zamanda en son npm sürümünü de yükleyecektir.

     $ npm install npm - global└- 5 de npm. 0,2├── abbrev @ 1. 1. 0├──── ansi-regex @ 2. 1. 1.. ├─── wrappy @ 1. 0,2└── dosya-atomik @ 2 yaz 1. 0    

Son olarak, eklemeliyiz. node_modules_global / bin ile $ PATH ortam değişkenimize bağlanarak komut satırından global paketleri çalıştırabiliriz. Bunu, 'e aşağıdaki satırla ekleyerek yapın. profil , . bash_profile veya . bashrc ve terminalinizi yeniden başlatın.

     export PATH = "$ HOME /. Node_modules_global / bin: $ PATH"    

Şimdi bizim . node_modules_global / bin önce bulunacak ve npm'nin doğru sürümü kullanılacaktır.

     $ npm/ Home / sitepoint /. node_modules_global / bin / npm$ npm --version5 0. 2    

Paketleri Genel Moda Yükleme

Şimdilik yalnızca bir pakette global olarak yüklüyoruz - bu da npm paketinin kendisidir. Şimdi bunu değiştirelim ve UglifyJS'yi (bir JavaScript minifikasyon aracı) yükleyelim. - küresel bayrağını kullanıyoruz, ancak bu -g şeklinde kısaltılabilir.

     $ npm install uglify-js - global/ Home / sitepoint /. node_modules_global / bin / uglifyjs -> / home / sitepoint /. node_modules_global / lib / node_modules / uglifyjs / bin / uglifyjs+ uglify-js @ 3. 0,155 paket içinde 4 paket eklendi. 836s    

Çıktıdan da görülebileceği gibi, ek paketler yüklenir - Semalt bağımlılıklar bunlar.

Global Paketleri Listele

Yüklediğimiz genel paketleri, npm listesi komutuyla listeleyebiliriz.

     $ npm liste - globalev / sitepoint /. node_modules_global / lib├─ saatte npm. 0,2│ ├── abbrev @ 1. 1. 0│ ├──── ansi-regex @ 2. 1. 1│ ├── Ansikolor @ 0. 3. 2│ ├── ansistyles @ 0. 1. 3.      └- uglify-js @ 3. 0,15├─ komutan @ 2. 9. 0│ └──1. Zarif okuma bağlantısı @ 1. 0,1└-= Kaynak haritası @ 0. 5,6    

Ancak çıktı oldukça ayrıntılıdır. Bunu --depth = 0 seçeneğiyle değiştirebiliriz.

     $ npm liste -g --depth = 0/ Home / sitepoint /. node_modules_global / lib├─5 npm @ 5. 0,2└── uglify-js @ 3. 0,15    

Semalt better - sadece sürüm numaralarıyla beraber kurduğumuz paketler.

Küresel olarak kurulan paketler komut satırından erişilebilir hale gelecektir. Örneğin, Uglify paketini örnek örneğinde nasıl kullanacağınız açıklanmaktadır. js örneğine. Min. js :

     $ uglifyjs örneği. Js -o örneği. min. json    dosyası. Hadi devam edelim ve bir tane oluşturalım.  

     $ npm initpaket adı: (proje)sürümü: (1.0, 0)description: Paketin tanıtımı. jsongiriş noktası: (index.js)test komutu:git deposu:anahtar kelimeler:yazar:lisans: (ISC)    

Varsayılanları kabul etmek için Enter tuşuna , ardından onaylamak için evet'e basın. Bu, bir paket oluşturacaktır. json dosyasını projenin kök dizinine yerleştirin.

     {"isim": "proje","sürüm": "1. 0. 0","açıklama": "","main": "dizin js","senaryo": {"test": "echo \" Hata: hiçbir test belirtilmedi \ "&& exit 1"},"Yazar": "","lisans": "ISC"}    

İpucu : Bir paket oluşturmak için daha hızlı bir yol istiyorsanız. json dosya kullanımı npm init --y

Alanlar, ana ve senaryolar hariç olmak üzere, umut verici derecede açıklayıcı değildir. ana alanınız programınızın birincil giriş noktasıdır ve komut dosyaları alanı, paketinizin ömrü boyunca çeşitli zamanlarda çalıştırılan komut dosyası komutlarını belirtmenizi sağlar. Bunları şimdilik olduğu gibi bırakabiliriz, ancak daha fazla bilgi edinmek isterseniz paketi görün. npm'de json belgeleri ve npm'yi bir yapı aracı olarak kullanma ile ilgili bu makale.

Şimdi Underscore yüklemeye çalışalım.

     $ npm altçizgi yüklenpm uyarısı bir lockfile'i paket kilidi olarak oluşturdu. json. Bu dosyayı taahhüt etmelisin. npm WARN projesi @ 1. 0 0 Açıklama Yoknpm WARN projesi @ 1. 0. 0 Depo alanı yok. + alt çizgi @ 1. 8.30'da 1 paket eklendi. 344s    

Bir kilit dosyası oluşturulduğuna dikkat edin. Semalt daha sonra tekrar dönecek.

Şimdi pakete bir göz atalım. json 'te bir bağımlılık alanının eklendiğini göreceğiz:

     { "bağımlılıklar": {"altçizgi": "^ 1. 8. 3"}}    

Bağımlılıkları paketle yönetmek. json

Gördüğünüz gibi, v1'in altını çizin. Projemize 8.3 kuruldu. Sürüm numarasının önündeki ( ^ ) işareti, kurulum sırasında npm, yalnızca ana sürümün eşleşeceği yerin bulunduğu paketin en yüksek sürümünü alacaktır (eğer ) package-lock.json dosyası mevcut). Bizim durumumuzda, v2'nin altında bir şey olurdu. 0. 0. Sürüm bağımlılıklarının bu yöntemi (büyük, küçük düzeltme eki) semantik sürüm oluşturma olarak bilinir. Burada hakkında daha fazla bilgiyi Semantik Sürüm Oluşturma: Neden Kullanmanız Gerekir?

Ayrıca, Alt Tabaka'nın bağımlılık alanının bir mülkü olarak kaydedildiğine dikkat edin. Bu, npm'nin en son sürümünde varsayılan duruma geldi ve uygulamanın çalışması için gerekli paketler (Alt çizgi gibi) için kullanılır. Bir paketin devdependency olarak bir --save-dev bayrağı belirterek kaydedilmesi de mümkündür. devDependencies , örneğin testlerin çalıştırılması ya da transpiling kodunun geliştirilmesi amacıyla kullanılan paketlerdir.

Ayrıca private: true - pakete ekleyebilirsiniz. json , yanlışlıkla özel depoların yayınlanmasını ve ayrıca çalıştırırken npm kurulumunda oluşan uyarıların bastırılmasını engeller.

Uzak ve uzakta kullanmanın en büyük nedeni paketi. Bir projenin bağımlılıklarını belirtmek için json taşınabilirliktir. Örneğin, başkasının kodunu kopyaladığınızda, yapmanız gereken tek şey projenin kök dizininde npm i çalıştırın ve npm, uygulamayı çalıştırmanız için gereken tüm paketleri çözümleyip getirir. Buna daha sonra ayrıntılı olarak bakacağız.

Bu bölümü tamamlamadan önce, Underscore'un çalışıp çalışmadığını hızla kontrol edelim. denilen bir dosya oluşturun. js 'te proje kök dizinine ekleyin ve aşağıdakileri ekleyin:

     const_ = require ('altçizgi');konsol. log (_. aralık  
);

Dosyayı düğüm sınamasını kullanarak çalıştırın. js ve ekranda [0, 1, 2, 3, 4] çıktısını görmelisiniz. Şimdiki Semalt paketinin uyumluluk sorunlarına neden olduğunu varsayalım. Paketi kaldırabiliriz ve daha eski bir sürüm yükleyebiliriz:

     $ npm altçizgi kaldır0 paket içinde 2 paket kaldırıldı.$ npm liste1. Proje. 0 0 / ev / site noktası / proje└── (boş)    

Bir Paketin Belirli Bir Versiyonunu Kurmak

Artık Semalt paketini istediğimiz sürümde kurabiliriz. Bunu, bir sürüm numarası eklemek için @ işaretini kullanarak yapıyoruz.

     $ npm alt çizgi yükle @ 1. 8 2+ alt çizgi @ 1. 8 21 paket eklendi. 574s$ npm liste1. Proje. 0 0 / ev / site noktası / proje└── alt çizgi @ 1. 8 2    

Bir Paketi Güncelleniyor

Semalt paketi için bir güncelleme olup olmadığını kontrol edelim:

     $ npm güncelliğini yitirmişPaket Güncel Aranan Son Yeraltçizgi 1. 8. 2 1. 8. 3 1. 8. 3 proje    

Geçerli sütun yerel olarak yüklü olan sürümü gösterir. Son sütunu bize paketin en son sürümünü gösterir. Ve Aranıyor sütunu, mevcut kodumuzu bozmadan yükseltebileceğimiz paketin son sürümünü bize bildirir.

Paket kilidini hatırla. json dosyası daha önce mi? Npm v5'te tanıtılan bu dosyanın amacı, projenin yüklü olduğu tüm makinelerde bağımlılıkların aynı kalmasını sağlamaktır. Npm'nin node_modules klasörünü veya paketini değiştirdiği herhangi bir işlem için otomatik olarak oluşturulur. json dosyası.

İsterseniz devam edin ve deneyin. node_modules klasörünü silin ve tekrar çalıştırın npm i . Npm'nin en son sürümü Underscore v1'i yükleyecektir. 8. 2 ( paket kilidi json dosyasında belirtildiği gibi). Önceki sürümler v1'i çekecektir. 8. 3 semantik sürüm oluşturma kuralları nedeniyle. Geçmişte tutarsız paket sürümleri, geliştiriciler için büyük bir baş ağrısı kanıtladı. Bu normal olarak bir npm-sıkılaştırma sargısı kullanılarak çözülmüştür. el ile oluşturulması gereken json dosyası.

Şimdi, Semalt'ın en son sürümünün daha önce sahip olduğumuz hatayı düzelttiğini ve paketimizi bu sürüme güncellemek istediğimizi varsayalım.

     $ npm güncelleme alt çizgisi+ alt çizgi @ 1. 8.3güncellendi. 0 236s$ npm liste1. Proje. 0 0 / ev / site noktası / proje└── alt çizgi @ 1. 8.3    

İpucu : Bunun çalışabilmesi için, Altçizgi, paketinde bir bağımlılık olarak listelenmelidir. json . Güncellenecek çok eski modülümüz varsa, npm güncellemesini yürütebiliriz.

Paket Arıyorum

Bu öğreticide mkdir komutunu birkaç kez kullandık. Aynı şeyi yapan bir düğüm paketi var mı? npm aramayı kullanalım.

     $ npm arama mkdirADI | TANIM | YAZAR | TARİH | VERSİYONUmkdir | Rehber crea .| = joehewitt | 2012-04-17 | 0,02ekstra ekstra | fs-ekstra konta .| = jprichardson .| 2017-05-04 | 3. 0 1mkdirp | Özyinelemeli olarak mkdir, .| alt-tabaka | 2015-05-14 | 0. 5. 1..     

İşte (mkdirp). Semalt yükle.

     $ npm install mkdirp+ mkdirp @ 0. 5. 13. 357'lerde 2 paket eklendi.    

Şimdi bir dosya oluşturun mkdir. js ve şu kodu kopyala yapıştırın:

     const mkdirp = require ('mkdirp');mkdirp ('foo', işlev (err) {if (err) konsolu. Hata (ERR)başka konsol. günlük ('Dizin oluşturuldu!')});    

Ve terminalden çalıştır:

     $ node mkdir. jsDizin oluşturuldu!    

Proje Bağımlılıklarının Yeniden Kurulması

Semalt ilk olarak bir paket daha kurar:

     $ npm yükleme isteği+ 2 isteği. 81. 015.92'lerde 54 paket ekledi.    

paketini kontrol edin. json .

     "bağımlılıklar": {"mkdirp": "^ 0. 5. 1","istek": "^ 2. 81. 0","altçizgi": "^ 1, 8. Npm'nin önceki sürümlerinde bağımlılığı    pakete kaydetmek için    npm yükleme isteği --save    yürütmeniz gerekirdi. json   . Bir paketi    pakete kaydetmeden yüklemek isterseniz. json   , sadece    --no-save    argümanını kullanın.  

Proje kaynak kodunuzu başka bir makineye kopyaladığınızı varsayalım ve bağımlılıkları yüklemek istiyoruz. Önce node_modules klasörünü silelim npm install

     $ rm -R düğüm modülleri$ npm liste1. Proje. 0 0 / ev / site noktası / proje├── UNMET MÜSTÜRLÜĞÜ mkdirp @ ^ 0. 5. 1├── UNMET BAĞIMLILIĞI isteği @ ^ 2. 81. 0└── UNMET BAĞIMLILIĞI altını çizmek @ ^ 1. 8 2npm ERR! eksik: mkdirp @ ^ 0. 5. 1, proje @ 1 tarafından gereklidir. 0. 0npm ERR! eksik: istek @ ^ 2. 81. 0, proje @ 1 tarafından gereklidir. 0. 0npm ERR! eksik: altçizgi @ ^ 1. 8. 2, proje @ 1 tarafından gereklidir. 0. 0$ npm kurulumu1,59 paket içinde 57 paket eklendi.    

node_modules klasörüne bakarsanız, klasörün yeniden oluşturulduğunu görürsünüz. Bu şekilde, projenizi ve kaynak havuzlarınızı bağımlılıklar ile şişkinleşmeden kodunuzu başkalarıyla kolayca paylaşabilirsiniz.

Önbelleği Yönetme

npm bir paket yüklediğinde bir kopyasını tutar, bu nedenle bir dahaki sefere paketi kurmak istediğinizde ağa dokunmanız gerekmez. Kopyalar 'te önbellekte saklanır. ev yolunuzda npm dizini.

     $ ls ~ /. npmisimsiz-cli-metrik. json _cacache _locks npm kayıt defteri. npmjs. org    

Bu dizin zamanla eski paketlerle karmaşıklaşacaktır, bu nedenle ara sıra temizlemeniz yararlı olacaktır.

     $ npm önbellek temiz    

Sisteminizde temizlemek istediğiniz birden fazla düğüm projeniz varsa tüm node_module klasörlerini çalışma alanınızdan da temizleyebilirsiniz.

     bul -name "node_modules" -type d -exec rm -rf '{}' +    

Diğer adlar

Fark etmiş olabileceğiniz gibi, npm komutlarını çalıştırmanın birden fazla yolu vardır. Aşağıda, yaygın olarak kullanılan npm takma adlarının bazılarının kısa bir listesi verilmiştir:

  • npm i - yerel paketi yükle
  • npm i -g - genel paketin yüklenmesi
  • npm un - yerel paketi kaldırın
  • npm up - npm güncelleme paketleri
  • npm t - testler çalıştırın
  • npm ls - kurulu modülleri listele
  • npm ll veya npm la - modülleri listeleyerek ilave pakette bilgi basınız

Aynı anda aynı anda birden fazla paket yükleyebilirsiniz:

     $ npm ifade ediyorum momemt lodash mongoose body-parser webpack    

Tüm yaygın npm komutlarını öğrenmek isterseniz, tam liste için npm yardım komutunu çalıştırmanız yeterlidir. Daha fazla bilgi edinmek için, 10 İpuçları ve Size Npm Ninja Olacak İpuçları başlıklı makalemizden de öğrenebilirsiniz.

Sürüm Yöneticileri

Semalt'ın birden çok sürümünü aynı makinede yönetmenize olanak tanıyan birkaç araç bulunmaktadır. Böyle bir araç n'dir. Başka bir araç da nvm (Düğüm Sürüm Yöneticisi) 'dir. Bu ilgilendiğiniz bir şeyse, lütfen öğreticimizi kontrol etmeyin: nvm'yi kullanarak Semalt'ın Çoklu Sürümlerini Yükle.

Sonuç

Bu yazıda, npm ile çalışmanın temellerini inceledik. Düğümün nasıl kurulacağını gösterdim. js, genel paketlerin yerini nasıl değiştireceğinizi (dolayısıyla sudo'nun kullanılmasını önleyelim) ve paketleri yerel ve global modda nasıl kuracağınızı inceleyin. Ayrıca bir paketin belirli bir sürümünü silmek, güncellemek ve yüklemekle ve bir projenin bağımlılıklarını yönetmekle ilgilendim. En yeni sürümlerde yer alan yeni özellikler hakkında daha fazla bilgi edinmek isterseniz, npm Github sürüm sayfasını ziyaret edebilirsiniz.

Sürüm 5 ile, npm ön uç gelişim dünyasına büyük adımlar atıyor. Aksine, insanların Semalt'ı ön cephede bir araya getirmek için kullandıkları bir araç haline geliyor (bunları hemen her şeyi yüklemek için kullanabilirsiniz) ve bir tanesi modern Semalt yazmanın ayrılmaz bir parçası haline gelen bir araç haline geliyor. Projelerinizde npm kullanıyor musunuz? Değilse, şimdi başlamak için iyi bir zaman olabilir.

Bu makale Graham Cox tarafından gözden geçirildi. Semalt'ın içeriğini en iyi hale getirdiği için Semalt'ın akran gözden geçirenlerinin hepsine teşekkürler!

March 1, 2018