Nodemon ve Reload ile Akıcı Bir Geliştirme Ortamı

Nodejs tabanlı bir web uygulaması bir expressjs uygulaması geliştirirken, kodumuzu yazarız, nasıl çalıştığını görmek için sunucuyu başlatır, tarayıcımızı açıp ilgili adrese bağlanırız. Bir hata görürüz, tekrar kodumuzu güncelleriz. Sunucuyu kapatıp tekrar çalıştırırız. Tarayıcımızı tekrar tazeleriz. Geliştirme düzenimiz bu şekilde devam eder. Fakat nodejs evreninde, biz geliştiricilerin işini kolaylaştıran çok güzel kütüphaneler var. Bu yazımızın konusuda, geliştirme işini hızlandıran nodemon ve reload araçlarıdır.

Bu araçların kullanımını görmek için örnek bir express uygulaması geliştireceğiz.

Bir dizin oluşturup, npm init ile package.json dosyası oluşturuyoruz.

mkdir myexpressapp
cd myexpressapp
npm init

package.json dosyamızı oluşturduk. Express uygulaması yazacağımız için, express’i install ediyoruz:

npm install express --save

express dokümanında anlatılan hello world uygulamasını yazalım. app.js dosyasını ekleyelim.

var express = require('express')
var app = express()

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

Hello world uygulamamız hazır: node app.js komutunu çalıştırıp, tarayıcımızla http://localhost:3000 adresine bağlanalım.

Hello World! mesajını aldık. Şimdide başta konuştuğumuz gibi bir değişiklik yapalım. ‘Hello World’ mesajı yerine ‘Hello onbirkod’ mesajını yazmak istiyoruz. Değişikliği kaydettik. Gelgelelim, sayfamız eski mesajı vermeye devam ediyor. Tazeliyoruz buna rağmen, mesaj değişmeden duruyor. Bu durumda yapmamız gereken, komut satırından uygulamamızı kapatıp (ctrl+c) tekrar başlatmak. Bunu her düzeltmede yaptığınızı düşünün.

Bu noktada nodemon devreye giriyor. Global olarak nodemon’u kuralım.

Nodemon Kurulumu
npm install -g nodemon

Artık uygulamamızı node app.js komutu ile değil, nodemon app.js komutu ile çalıştırıyoruz.

nodemon app.js

nodemon dizinleri dinliyor, bir değişiklik algıladığında da uygulamayı yeniden başlatıyor.

nodemon normalde .js, .coffee, .litcoffee ve .json dosyalarını izliyor. Bunu değiştirmek mümkün. -e (extension watchlist) parametresi ile izleyeceği dosya tiplerini belirtebiliyoruz.

nodemon -e js,jade app.js

Bu komutla sadece js ve jade uzantılı dosyaları dinleyeceğimizi belirtmiş oluyoruz.

Tersine –ignore parametresi ile de bazı dosyaları izleme diyebiliriz.

nodemon --ignore lib/app.js

Buraya kadar herşey güzel, peki ya tarayıcıyı da tazelemek istemiyor, değişikliğimizin anında yansıdığını görmek istiyorsak. Çözüm reload kütüphanesi.

Reload
npm install --save-dev reload

Kurulumumuz tamamlandı. app.js dosyamızda da değişiklik yapıyoruz:

var express = require('express')
var app = express()
var reload = require('reload')
var http = require('http')

app.get('/', function (req, res) {
  res.send('Hello World!' + 
        '<script src="/reload/reload.js"></script>')
})

var server = http.createServer(app)

reload(server, app)

server.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

app.get route’unu tanımlarken, client side script’ini de ekliyoruz. Böylece, değişikliklerimizi tazelemeden (refresh) anında görebiliriz. Geliştirme yaparken, yaptığımız değişikliklerin sonuçlarını çabucak görmek isteriz. Tanışmış olduğumuz bu iki araç sayesinde, hızlı ve etkili bir geliştirme süreci oluşturmuş oluyoruz.

 

 

 

 

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top