NPM NEDİR?
Selam arkadaşlar, bu yazımda size Javascriptin en önemli konfigurasyon konularından biri olan Npm’den detaylı olarak bahsetmek istiyorum.
NPM-BUILD AMAZING THINGS!
Npm: “Build amazing things” kendi sitesinde tam olarak tanımı yapılmış. NPM (Node Package Manager / Node Packaged Modules), Isaac Z. Schlueter tarafından, tamamen JavaScript dili kullanılarak geliştirilmiş paketlerin yönetimini sağlayan dünyanın en büyük yazılım kütüphanesidir. İçerisinde 800.000 ‘den fazla kod paketi bulunmaktadır. Npm ücretsizdir. Herhangi bir login veya kayıt işlemi yapmadan projenizde npm paketlerini istediğiniz gibi kullanabilirsiniz.
NPM NEREDE KULLANILIR?
Npm Node.js için gereken modülleri yüklemek, silmek, güncellemek ve listelemek için javascript projelerinde kullanılan bir paket yöneticisidir. Npm komut satırı(terminal) üzerinden çalışır. Npm Node.js ile birlikte çalışır yani Node.js’in paket yönetim sistemidir.
PAKET YÖNETİM SİSTEMİ ????
Sürekli paket paket diyip durduk. Ne paketleri bunlar?
Paketler Node.js ‘in içerisinde mevcuttur ve her kullanmak istediğimiz modül için ihtiyacımız olan dosyaları tutar.
MODÜL ???
Modüller ise projemizde kullanmak istediğimizde bize gerekli olan Javascript kütüphaneleridir.
NPM KURULUMU
Herhangi bir javascript projemizde Node yüklü olmadan npm kullanamayız. Yani projemize Node yüklediğimiz zaman npm paket manager da Node’un içerisinde gelir. Bu kadar Node.js ‘den bahsetmişken dilerseniz Node.js ‘in ne olduğuna bir göz atalım:
Node.js açık kaynaklı, ücretsiz, server tarafında çalışan ve uygulama geliştirmek için kullanılan bir çalıştırma ortamıdır yani “runtime-environment”. Node.js uygulamaları Javascript kullanılarak geliştirilir. Node.js birçok ortamda çalışır. (Windows,Linux,Unix,MacOS X…). Node.js indirme işlemini node bu linkten yapabilirsiniz.
Bu adımları tamamladıktan sonra node’ un yüklü olup olmadığını öğrenmek için terminalden node versiyon kontrolü şu şekilde yapılır:
node -vv10.16.3
(Elde edilen çıktı bu şekilde versiyon gösteren bi değer olacaktır)
Npm versiyon kontrolü ise terminalden şu şekilde yapılır:
npm -v6.9.0
(Elde edilen çıktı bu şekilde versiyon gösteren bi değer olacaktır)
Npm son versiyona update etme komutu:
npm install npm@latest -g
Npm yardımı ile install ettiğimiz dependency’ler package.json dosyasında tutulur.
package.json?
package.json
dosyasının içinde "name"
ve "version"
alanları bulunmalıdır.
"name"
install edilen paketin ismidir küçük harflerle yazılmış olmalıdır. Tire veya alt tire içerebilir.
"version"
x.x.x formatında olmalıdır.
{
"name": "ant-design-pro",
"version": "2.2.1"
}
Bu örnekte ant-design-pro install edilmiştir alt satırda ise 2.2.1 versiyonunu indirdiğiniz bilgisi yer almaktadır.
package.json Dosyası Nasıl Oluşturulur?
Package.json dosyasını oluşturmak için terminalden projenin olduğu dizine gidilir. Burada:
npm init
Bu adımdan sonra size sırasıyla terminalde
- package name:
- version:
- description:
- entry point:
- keywords:
- author:
- lisence
soracak. Bunları terminalden tek tek yanıtladıktan sonra package.json dosyası oluşmuş olacak.
npm init --yes
Terminalden yukarıdaki komut yazıldığında tüm soruları otomatik olarak geçeçektir ve aşağıdaki gibi bir package.json dosyası oluşturacaktır:
{
"private": true,
"scripts": {
"start": "umi dev",
"build": "umi build",
"test": "umi test",
"lint": "eslint --ext .js src mock tests",
"precommit": "lint-staged"
},
"dependencies": {
"dva": "^2.6.0-beta.6",
"antd": "^3.19.5",
"react": "^16.8.6",
"react-dom": "^16.8.6"
},
"devDependencies": {
"babel-eslint": "^9.0.0",
"eslint": "^5.4.0",
"eslint-config-umi": "^1.4.0",
"eslint-plugin-flowtype": "^2.50.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.11.1",
"husky": "^0.14.3",
"lint-staged": "^7.2.2",
"react-test-renderer": "^16.7.0",
"umi": "^2.7.7",
"umi-plugin-react": "^1.8.4"
},
"lint-staged": {
"*.{js,jsx}": [
"eslint --fix",
"git add"
]
},
"engines": {
"node": ">=8.0.0"
},
"name": "deneme",
"version": "1.0.0",
"main": ".umirc.js",
"repository": {
"type": "git",
"url": "git+https://deneme@bitbucket.org/deneme/deneme.git"
},
"keywords": [
"1234"
],
"author": "deneme",
"license": "ISC",
"homepage": "https://bitbucket.org/d/deneme#readme",
"description": ""
}
Ayrıca package.json dosyası oluştururken bazı alanlar default olarak verilebilir. Örneğin; default author name, lisans, email…
npm set init.author.email “deneme-deneme@example.com”
npm set init.author.name "deneme_deneme"
npm set init.license "MIT"
Npm ile indirilen paketleri listelemek için:
npm config list -l
Çıktı aşağıdakine benzer olacaktır:
Npm ile alt kırılımları göstermek istemezsek:
npm list --depth=0
Çıktı aşağıdakine benzer şekilde olacaktır:
Tek bir paketin değerini almak için:
npm config get <name>
Bir paketin değerini değiştirmek için:
npm set <deneme1> <deneme2>
Npm güncellemek için:
npm update -g npm
İndirilen bir paketi güncellemek için:
npm update <package-name>
Npm modül güncelleştirme yapmadan önce modüllerin güncel olup olmadığına bakılmalıdır.
Modüllerin güncel olup olmadığını kontrol etmek için:
npm outdated
Çıktı aşağıdakine benzer olacaktır:
Çıktıda latest versiyon ve current(projede kullanılan versiyon) yazmaktadır.
Yüklü paketleri silmek için:
npm uninstall <package-name>
NPM PAKET KURULUMLARI
Npm paket install etmenin iki yolu vardır:
1:Local installation
2: Global installation
Package.json dosyasının içerisi incelendiğinde devDependencies ve dependencies adında iki benzer dependency görülmektedir.
"dependencies"
: Production ortamında gerekli olan ve kullanılan paketleri gösterir"devDependencies"
: Sadece local development ortamında ve test ortamında gerekli olan ve kullanılan paketleri gösterir.
Local Npm Installation:
Modül sadece içinde bulunulan projenin olduğu dizine kurulur. Ardından package.json’a otomatik yazılmış olur.
Local modül import etmek için:
npm install <package name>
Bu adımdan sonra indirilen her paket otomatik olarak node_modules klasörüne yazılır.
Global Npm Installation:
Npm paketleri global olarak ta indirilebilir. Global paket yüklerken bulunduğunuz bilgisayarda ki tüm node.js uygulamalarının global olarak bu indirilen bu paketi kullanabileceği anlamında gelir. Npm global paketleri “/<User>/local/lib/node_modules” dizini altına indirir.
Global modül import etmek için:
npm install <package-name> -g --save-dev
- g: Global olarak indirmek istendiğini belirtir.
- — save-dev: İndirilen paketi veya modülü package.json dosyasına dependency olarak kaydeder.
- <package-name>: İndirmek istenilen modülün adını gösterir.
Global modüllerin güncel olup olmadığını kontrol etmek için:
npm outdated -g
Herhangi bir paketin son versiyonunu indirmek için:
npm install <package-name>@latest
İstenilen versiyondaki paketi yüklemek için:
npm install <package-name>@3.12.1
Npm install komutunun node_modules içersine neleri install ettiğini terminalden görmek için:
ls node_modules
Çıktı aşağıdakine benzer olacaktır:
Npm help’e ulaşmak için:
npm help npm
Çıktı aşağıdaki gibi olacaktır:
Terminalde iken enter a her basıldığında npm help center dan yeni bilgilere ulaşılmaktadır.
Kaynaklar:
https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file