Herkese merhaba, bu derste Node Package Manager (NPM) hakkında bilgi edineceğiz. Ders 1'de biraz konuştuk  ve projeyi başlattık. Şimdi derinlere dalalım.

NPM nedir

Adından da anlaşılacağı gibi, Node için Paket Yöneticisidir. Dünyanın her yerinden Açık Kaynak Geliştiriciler, Node paketlerini yayınlayabilir ve başkaları tarafından yayınlanan paketleri ücretsiz olarak kullanabilir.

Açık kaynaklı Nodejs projelerinin yayınlanması için çevrimiçi bir havuzdur.

Ayrıca, bir Nodejs projesindeki paketlerle etkileşim kurmak ve bağımlılıkları yönetmek için bir komut satırı yardımcı programıdır. Bağımlılıklar sadece projede kullanılan paketlerdir. npm cli, npm kayıt defterinde bulunan paketleri kolayca kurmanıza ve kaldırmanıza yardımcı olur.

Npm kayıt defterinde bulunan 1,372k + paketlerinin yardımıyla hızlı bir şekilde yazılım oluşturmamıza yardımcı olur . Bir sorunla sıkışıp kaldıysanız, doğrudan yapabileceğiniz birisinin katkıda bulunduğu bir çözüm zaten vardır.

NPM, standart Node kurulumuyla birlikte gelir. Npm paketleri ile etkileşime girmek için zaten bir klibimiz var.  Terminalde npm – versiyonunu çalıştırarak kontrol edebilirsiniz  . Şimdi nasıl çalıştığını ve kendimiz nasıl bir paket oluşturabileceğimizi anlayalım.

Bir modül nasıl oluşturulur ve toplulukla nasıl paylaşılır

Bir paket oluşturduğunuzu ve bunu npm'de bir paket olarak paylaşmak istediğinizi varsayalım. İşleri basit tutmak için, bunun harika paketiniz olduğunu düşünelim:

// index.js
module.exports = function(){
    console.log("My awesome module at so share");
}

Bu paketi NPM'de paylaşmak için, depoyu bir npm paketi olarak başlatmanız gerekecektir. Bunu yapmak için tek bir komut çalıştırmanız yeterlidir:

npm init

Cli size paket adı, sürümü, yazarı vb. bir dizi soru soracak ve bir package.json dosyası oluşturacaktır. Paket sürümünü izlemek için de kullanılan aynı dosyadır.

{
  "name": "supermodule",
  "version": "1.0.0",
  "description": "ERROR: No README data found!",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "Your name here",
  "license": "ISC",
  "repository": ""
}

Şimdi harika paketinizi yayınlamaya hazırız.

Paketimize "supermodule" adını veriyoruz.

Nasıl Yayınlanır

Paketinizi yayınlamak için bir npm hesabına ihtiyacınız olacak. Henüz yapmadıysanız, kayıt sayfasını ziyaret edin  ve bir hesap oluşturun.

İşiniz bittiğinde, terminali açın ve aşağıdakileri kullanarak hesabınızla oturum açın:

npm login

Başarıyla oturum açmak için kullanıcı adınızı, e-postanızı ve şifrenizi girmeniz gerekecek. Son olarak, paketinizi yayınlamak için şu komutu girin:

npm publish

Paket adınızın benzersiz olduğundan emin olun.

Tebrikler, ilk paketinizi yayınladınız.  npm help tüm npm komutları aşağı listeye yazabilirsiniz.

Bir Node paketi nasıl kurulur?

Şimdi birisinin paketinizi projesinde nasıl kurup kullanabileceğinden bahsedeceğiz. Kişi basitçe  npm install ve  ardından istediği paket adını yazmalıdır . Örneğimiz için şöyle olacaktır:

npm install supermodule

NPM, paketi indirecek ve npm_modules dizini içine kaydedecektir . Bu dizin, bir projedeki tüm kurulu paketleri kaydetmek için varsayılan yerdir.

Artık geliştiricinin modüle giden tam yolu yazması gerekmiyor. NPM, paketin node_modules klasöründe bulunup bulunmadığını kontrol eder ve kolayca dosyaya aktarır:

import SuperModule = require('supermodule');

İşte bu kadar artık paketinizi kullanarak birisinin problemini çözmesine yardımcı oldunuz. Açık Kaynak Topluluğu bu şekilde birbirine yardımcı olur ve paketinizi yayınlayarak, onun bir parçası oldunuz.

Ya paket artık gerekli değilse ve onu kaldırmak istiyorsanız? Sadece bu komutu terminalde yazmanız yeterlidir ve paketinizi kaldıracaktır:

npm remove "PACKAGE NAME"

Kaldırmak istediğiniz PAKET ADINI giriniz.

Bu url'yi ziyaret ederek yayınlanan paketin metasını görebilirsiniz:

http://registry.npmjs.org/supermodule

Burada modül ile ilgili tüm bilgileri görebilirsiniz ve paket.json modül dosyasına bir bağlantı içerir. Bu dosya da veritabanında yer almaktadır. Burada npm yayınlama komutuyla otomatik olarak indirildi. Bu kayıt defterinde bulunan her şeyin genel erişime sahip olduğunu unutmayın.

NPM, kullanımı sınırlandırmak istiyorsanız size sınırlı erişime sahip paketler yayınlama olanağı sunar. Ancak bunun için belirli bir ücret  ödenir ve resmi sayfalarında fiyatlandırma hakkında daha fazla bilgi edinebilirsiniz  .

Burada, modülün yolunu sağlıyoruz, böylece anlaşılır olsun. Node, paketi belirtilen konumda arayacak ve içeri aktaracaktır.

Not: .js isteğe bağlıdır. .Js yoksa, Node, user.js veya user / index.js'yi arar.

Ama yolu sağlamadığımızda ne olacak? Misal:

const fs = require('fs');

İlk önce, Nodejs gerekli modülün bir çekirdek modül olup olmadığını görecek. Core modules, varsayılan olarak Nodejs ile paketlenmiş modüllerdir. Sisteminizin /lib directory bulunurlar ve diğer her şeyden önceliklidirler. Temel modüllerden bazıları fs, https vb.

Require () 'ye iletilen modül tanımlayıcısı   bir çekirdek modül değilse ve  ' / ',' ../ 'veya' ./ 'ile başlamıyorsa, Nodejs geçerli modülün üst dizininde başlar ve ekler / node_modules ve modülü bu konumdan yüklemeye çalışır.

Paket yukarıda belirtilen yerlerden hiçbirinde bulunamazsa, Node bunları global paketlerde aramaya başlayacaktır. NODE_PATHenvironment değişkeni, iki nokta üst üste ile ayrılmış mutlak yollar listesine ayarlanırsa, Node.js, başka bir yerde bulunamazlarsa, modüller için bu yolları arayacaktır.

Ek olarak, Node.js aşağıdaki GLOBAL_FOLDERS listesinde arama yapacaktır:

  • $ HOME / .node_modules
  • $ HOME / .node_libraries
  • $ PREFIX / lib / düğüm

$ HOME, kullanıcının ana dizini ve $ PREFIX, Node.js ile yapılandırılmış node_prefix'tir.

Başka bir Nodejs dersinde görüşmek üzere takipte kalın...