Herkese merhabalar.

Bu yazımda kendi yazdığımız Vanilla JavaScript modülünü NPM’de yayınlamayı anlatmaya çalışacağım.

Adım adım ilerleyeceğiz ve ihtiyacınız olan her şeyi göstermeye çalışacağım.

1 NPM’de Kullanıcı Oluştur

Öncelikle NPM’in sitesine gidip bir kullanıcı hesabı oluşturuyoruz.

https://www.npmjs.com

Adım adım görselleri takip edip kullanıcımızı oluşturalım.

2 Paket İçin Github Reposu Oluştur

Paketimizin public bir reposunun olması önemlidir. İnsanların oluşturduğumuz pakete katkı sağlamalarını sağlayacaktır.

Github’da hesabınız yoksa önce bunu oluşturunuz. Aşağıdaki yazım size yardımcı olacaktır.

Hesabınızı oluşturduysanız ya da var ise buradan devam edelim.

Paketin Repo’sunu oluşturmak için aşağıdaki görselleri takip ediniz.

Repomuzun adresini kopyalayıp alalım kullanacağız.

3 Git Kurulumu

Oluşturduğumuz Github reposunu local’e çekip kullanacağımız için Git kurulumuna ihtiyacımız var. Aşağıdaki yazım size yardımcı olacaktır.

4 Repomuzu Local’e Çekelim

Git Bash’i açalım.

Proje dosyanın hangi klasör içine inmesini istiyorsanız öncelikle cd komutuyla o dizine gidin.

Örneğin Desktop içine oluşturmak istiyorsanız

cd Desktop

Reponuzu local’e almak için aşağıdaki komutu çalıştırın. https ile başlayan adres yerine kendi reponuzun yukarıda aldığınız adresini giriniz.

git clone https://github.com/MuratBilginerSoft/CounterLetter.git

Bulunduğunuz klasör içinde Reponuz gelmiş olmalı. Şimdi bu dosyayı VS Code ile açalım.

cd CounterLetter
code .

.gitignore dosyamızı oluşturalım ve node_modules/ ekleyelim.

echo "node_modules/" >> .gitignore

Son haliyle artık projemiz bu şekle geldi.

5 Projemizi Bir NodeJS Modülüne Dönüştürelim

Projemize dönelim ve VS Code Terminali açalım. Sonrasında projemizi bir node modülü haline getirebilmek için aşağıdaki komutu çalıştıralım.

npm init -y

package.json dosyası oluşacak. İçeriğini aşağıdaki gibi güncelleyelim.

{
  "name": "counterletterx",
  "version": "0.0.1",
  "description": "The package that returns how many characters the string expression sent to him is",
  "main": "src/index.js",
  "type" :"module",
  "scripts": {
    "dev": "node src/index.js"
  },
  "keywords": ["Counter", "Letter", "X"],
  "author": "Murat Bilginer",
  "license": "MIT"
}

package.json içinde yazdıklarımızın açıklaması aşağıdaki gibidir.

name: "counterletterx"

Paketin adı. Bu ismi kullanarak paketi çağırabilirsin. Bu isim npm’e paketin hangi isimle yükleneceğini belirtir. Bu paket ismi daha önceden npm’de bulunmaması gerekir. Bunun için npm’de paketi aratarak var mı yok mu kontrolü yapabilirsiniz. Benzersiz bir isim vermeniz gerekecek.

version: "0.0.1"

Paketin sürüm numarası. Genellikle paketin gelişim aşamalarını belirtir. Pakette yeni güncellemeler yaptığımızda buradaki sürüm numarasını değiştirdikten sonra publish işlemini gerçekleştireceğiz. Eğer sürüm numarasını değiştirmezsek hata alırız.

description: "The package that returns how many characters the string expression sent to him is"

Paketin kısa bir açıklaması. Bu, paketin temel işlevini belirtir.

main: "src/index.js"

Paketin ana dosyasının yolu. İlk çağrıldığında bu dosya çalıştırılır.

type: "module"

Bu, paketin bir ECMAScript modülü olduğunu belirtir. Yani, modern JavaScript modül sistemini kullanıyor.

scripts:

dev: “node src/index.js”

Bu script, npm dev komutu çalıştırıldığında yürütülecek komutu belirtir.

keywords: ["Counter", "Letter", "X"]

Paketin anahtar kelimeleri. Bu kelimeler, paketi tanımlamak ve etiketlemek için kullanılır.

author: "Murat Bilginer"

Paketin yazarının adı.

license: "MIT"

Paketin lisans türü. MIT lisansı genellikle özgür bir lisans olarak kullanılır, ancak yine de belirli kuralları içerir.

6 Paket Geliştirmelerimizi Yapalım

Şimdi proje içinde src isminde bir klasör oluşturalım. İçinde index.js diye bir dosya. Sonra index.js içine aşağıdaki kodlarımızı yazalım.

const CounterLetters = (keyword) => {

    let result=0;
    result = keyword.length;
    return result;

}

export default CounterLetters;

// Path: src/index.js

Basit bir paket yazdığımız için işlemimiz bu kadardı.

7 Npm’de Login İşlemi

Paketimizi yazıp tamamladık. Bu noktadan sonra npm üzerinde terminalden login işlemini gerçekleştireceğiz.

Aşağıdaki komutu çalıştıralım.

npm login

Burada sizi tarayıcıda işleminizi tamamlayabilmek için yönlendirecek. Yönlendirdiğinde Enter’a basıyoruz.

Tarayıcıya geçince 2 faktörlü doğrulama için belirlediğiniz uygulamadaki kodu girmenizi isteyecek.

Doğru şekilde girip Login diyoruz.

İşlem başarılıysa Terminale dönebilirsiniz.

Terminale döndüğünüzde aşağıdaki ifadeyi görüyorsanız başarılı Login oldunuz demektir.

8 NPM Publish

Artık projemizi npm’e publish edebiliriz. Terminalde aşağıdaki komutu yürütelim.

npm publish

Bunu yaptığınızda yine 2 faktörlü doğrulama için sizi tarayıcıya yönlendirecek Enter’a basıp geçişi yapıp ilgili kodu girip onaylayınız. Bunu yaptıktan sonra tekrar terminale döndüğünüzde paketinizin ismini ve version numarasını görüyorsanız paketiniz yüklendi demektir.

9 NPM’de Paket Kontrolü

Yüklediğimiz paketi NPM’de kontrol edelim.

Paketimiz herkesin kullanımına sunuldu. Projemize hangi komut ile dahil edebileceğimiz de gösteriliyor.

10 Paketi Farklı Bir Projede Test Edelim

Şimdi hemen Test isminde bir proje oluşturalım ve bunu VS Code ile açalım.

İçinde index.js isminde bir dosya oluşturalım.

Sonra terminalde aşağıdaki komutu çalıştıralım.

npm init -y 

Şimdi aşağıdaki komutla paketimizi bu projeye dahil edelim.

npm i counterletterx

Paketimiz projemize dahil oldu.

package.json dosyamıza aşağıdaki değeri ekleyelim. Paketimizi normal import ederek kullanabilelim.

"type" : "module";

Tam hali aşağıdaki gibi.

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type" : "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "counterletterx": "^0.0.1"
  }
}

index.js içinde aşağıdaki kodlarımızı yazarak paketimizin çalışıp çalışmadığını kontrol edelim.

import CounterLetters from "counterletterx";   

console.log(CounterLetters("Hello World!"));

Çıktımızı görebilmek için terminalde aşağıdaki komutunu çalıştıralım.

node index.js

Başarılı şekilde oluşturduğumuz paketi kullanabildik.

11 Paketi Güncelleme ve Yeniden NPM’e Gönderme

Şimdi paketimizi yazdığımız projeye geri dönelim. Daha güzel bir README.md dosyası yazalım kodlarımızda ufak bir güncelleme yapalım. Sonra güncel halini yeniden publish edelim.

# CounterLetters

## English

### Description

CounterLetters is a simple JavaScript library that counts the number of letters in a given string.

### Installation

To install CounterLetters, run the following command:

```bash

npm install counterletters

```

### Usage

``` javascript

import CounterLetters from 'counterletters';
/* or 
const CounterLetters = require('counterletterx'); */


const count = CounterLetters('Hello, world!');
console.log(count);  // Outputs: 13

```


### ******************** ###

## Türkçe

### Açıklama

CounterLetters, verilen bir stringdeki harf sayısını sayan basit bir JavaScript kütüphanesidir.

## Kurulum

CounterLetters'ı kurmak için aşağıdaki komutu çalıştırın:

```bash

npm install counterletters

```

### Kullanım

CounterLetters'ın nasıl kullanılacağına dair basit bir örnek:

```javascript

import CounterLetters from 'counterletters';
/* or 
const CounterLetters = require('counterletterx'); */

const count = CounterLetters('Hello, world!');
console.log(count);  // Outputs: 13

```

index.js’yi aşağıdaki gibi güncelleyelim.

const CounterLetters = (keyword) => {

    let result = keyword.length;
    return result ? result : 0;

}

export default CounterLetters;

// Path: src/index.js

Paketinizi yayınlarken, genellikle sürüm numarasını artırmak için npm version komutunu kullanırız. Bu komut, mevcut sürüm numarasını artırmanın yanı sıra bir etiket oluşturur ve package.json dosyamızı günceller.

Sürüm numarasının artırılması için üç farklı seçenek vardır: major, minor ve patch.

  1. Major Version Artırma:
    • Büyük ve geriye dönük uyumsuz değişiklikler yaptığınızda kullanılır.
    • Komut: npm version major
  2. Minor Version Artırma:
    • Geriye dönük uyumlu yeni özellikler eklediğinizde kullanılır.
    • Komut: npm version minor
  3. Patch Version Artırma:
    • Geriye dönük uyumlu hata düzeltmeleri eklediğinizde kullanılır.
    • Komut: npm version patch

npm version komutunu hata almadan kullanabilmeniz için öncelikle projenizdeki güncellemeleri commit etmeli ve repoya push’lamalısınız.

Git Bash hala açık olmalı. Oraya gidelim ve aşağıdaki komutları sırayla çalıştıralım.

git add .
git commit -m "Minor Update"
git push

Benim yaptığım bu güncelleme minör bir güncelleme. Şimdi projenin terminalinde aşağıdaki komutu çalıştırabiliriz.

npm version minor

Aşağıdaki gibi version numaram güncellendi.

Şimdi güncellemeleri gönderebiliriz.

npm publish 

Başarıyla güncellendi.

Tekrar paketimin sayfasına gidip bakalım.

Her şey istediğim gibi gitti.

Artık sizin de NPM’de bir paketiniz var. Bu şekilde başkalarının işine yarayacağını düşündüğünüz paketlerinizi NPM üzerinde yayınlayabilir. Bu topluluğa fayda sağlayabilirsiniz.

Bir sonraki yazımda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.