package.json Nedir?

on under Node.js
2 minute read

package.json Nedir?

Merhabalar. Bu yazımda package.json doyasından bahsedeceğim. Bir Node.js projesi yazarken projemizin içerisinde mutlaka bir package.json dosyamız olur. Bu dosyanın içerisinde proje ile ilgili zorunlu-zorunlu olmayan bazı bilgileri içeren bir dosya bulunmalıdır. Bu bilgilerden bahsedelim.

Öncelikle projemizin olduğu klasörün içerisinde bir not defteri oluşuturup ismini package.json olarak değiştiriyorum. (Eğer dosya uzantıları klasör seçeneklerinde açık değilse .json yapamazsınız.) Daha sonra bir text editör ile dosyamı açıyorum.

Burdan sonra her package.json bilgisini altında açıklama ile yazacağım.

Başlamadan önde birkaç yazım kuralından bahsetmek istiyorum. objeler arasında ‘,’(virgül) kullanılır. ‘;’ ile alt satıra geçme işlemi yapılamaz. Son objenin sonunda hiçbirşey bulunmaz. Hakeza bu objenin içerisindeki nesnelerde de geçerlidir.

name

Proje için bir isim giriyoruz. Küçük harflerle olmalı. Eğer birden fazla kelime kullanılırsa aralarda ‘-‘ olması tavsiye edilir. Zorunlu

"name" : "proje-ismi",

version

Semantic Versioning denen bir versiyon tanımlama sistemiyle düzenlenir. O da şu şekildedir; 3 kısımdan oluşur:
1.MAJOR: Farklı bir API değişikliği yaptığında.
2.MINOR: Geriye dönük bir yolda fonksiyonellik eklediğinizde.
3.PATCH: Geriye dönük bug düzeltmesi yaptığınızda.
Zorunludur.

"verison":"0.0.1", //MAJOR.MINOR.PATCH

description

Projenin tanımıdır. Kısa tutulması tavsiye edilir.

"description":"Projenin tanımını yazınız.",

author

Projenin yazarı/yazılımcısı. Umarım ki kendi isminizi yazarsınız.

"author":"Enes Ozturk",

script

Kendi node komutunuzu oluşurmanızı sağlayan obje. Yani belirlediğiniz komutlara takma ad veriyorsunuz.

"script": {
	"start":"node index.js",
    "win32": "electron-packager . myApp --platform=win32 --arch=ia32"
}

Verdiğim örnekte mesela komut penceresine electron main.js yazmak yerine node start yazıyorum.

bugs

Projen ile ilgili bugların rapor edileceği adres veya email.

"bugs": {
  "url": "https://github.com/kullanici-ismi/proje-ismi/issues"
},

dependencies

Projemizde kullandığımız paketleri kullanmamız/indirmemiz için ihtiyacımız olan obje. Zorunlu olabilir Eğer kullanacağımız projenin ihtiyaç duyduğu paketler sistemde global olarak yüklü ise ayrıyetten projeye indirmemize gerek yok. Fakat çok küçük olmayan bir proje yapıyorsanız fazla pakete ihtiyacınız olacağından hepsini global olarak indirmek istemezsiniz. Dolayısıyla buna ihtiyacınız olacak.

"dependencies":{
  "socket.io":"*", //yıldız son sürümü yükler
  "express":"4.2.x" //4.2 dağıtımının herhangi bir sürümünü yükler
  "winston":"git://github.com/flatiron/winston#master", // adres vererek yükledim
  "bigpipe":"bigpipe/pagelet" //projenin içerisinde bulunuyorsa ordan çektim
}

licence

İnsanların projeniz hakkında kullanım iznini bilmesini sağlayacak obje. Açık kaynaklı bir proje ise MIT kullanırız.

"license":"MIT",

Şimdilik bir proje için en çok kullanılan ve gerekli olan objelerden bahsettik. Okuduğunuz için teşekkür ederim.

  "name": "proje-ismi",
  "version": "1.2.0",
  "description": "Projenin bir tanımı",
  "author": "İsminiz",
  "scripts": {
    "start": "node index.js",
    "electron": "electron main.js"
  },
  "bugs": {
  "url": "https://github.com/nodejitsu/browsenpm.org/issues"
  },
  "dependencies":{
	"socket.io":"*", //yıldız son sürümü yükler
	"express":"4.2.x" //4.2 dağıtımının herhangi bir sürümünü yükler
	"winston":"git://github.com/flatiron/winston#master", // adres vererek yükledim
	"bigpipe":"bigpipe/pagelet" //projenin içerisinde bulunuyorsa ordan çektim
  }
  "license": "MIT"
package.json, Node.js, JSON, Javascript, npm
comments powered by Disqus