giriiş
Node.js'de, değişikliklerin etkili olması için işlemi yeniden başlatmanız gerekir. Bu, iş akışınıza fazladan bir adım ekler. İşlemi otomatik olarak yeniden başlatmak için nodemon kullanarak bu fazladan adımı ortadan kaldırabilirsiniz.
nodemon, rem tarafından geliştirilen ve Node uygulamanızı paketleyen, dosya sistemini izleyen ve işlemi otomatik olarak yeniden başlatan bir komut satırı arayüzü (CLI) aracıdır. Bu makalede, nodemon'ı nasıl kuracağınızı, ayarlayacağınızı ve yapılandıracağınızı öğreneceksiniz.
Ön koşullar
- Node.js kuruldu
Adım 1 – Nodemon'u yükleyin
Öncelikle makinenize Nodemon'u kurmanız gerekiyor. Aracı, projenize global veya yerel olarak şu komutu kullanarak kurabilirsiniz: npm Veya iplik Düzenlemek.
Nodemon'u global olarak şu şekilde başlatabilirsiniz: npm Düzenlemek:
npm install nodemon --globalVeya ile İplik:
yarn global add nodemonNodemon'u yerel olarak da kurabilirsiniz. Yerel kurulum yaparken, nodemon'u --save-dev (veya --dev) seçeneğiyle geliştirici bağımlılığı olarak kurabilirsiniz.
Nodemon'u yerel olarak yükleyin npm Düzenlemek:
npm install nodemon --save-devVeya ile İplik:
yarn add nodemon --devYerel kurulumla ilgili dikkat edilmesi gereken bir nokta, nodemon komutunu doğrudan kullanamayacağınızdır:
Outputcommand not found: nodemonYerel olarak yüklenen paketi çalıştırabilirsiniz:
./node_modules/.bin/nodemon.js [your node app]Bunu npm scriptlerinde veya npx ile de kullanabilirsiniz.
Adım 2 – nodemon ile Örnek Bir Express Projesi Kurma
Bir Node betiğini başlatmak için nodemon kullanabilirsiniz. Örneğin, dosyada bir Express sunucunuz varsa sunucu.js Başlat, yapabilirsin nodemon Başlatın ve şu değişiklikleri görün:
nodemon server.jsNode ile bir betiği çalıştırdığınız şekilde argümanları geçirebilirsiniz:
nodemon server.js 3006Geçerli dizinde veya alt dizinde gözlemlenen varsayılan uzantılardan birine (js, .mjs, .json, .coffee veya .litcoffee) sahip bir dosyada değişiklik yaptığınız her seferinde işlem yeniden başlar.
Mesajı gönderen örnek bir server.js dosyası yazalım: Dolphin uygulaması ${port}! portunu dinliyor.
const express = require('express')
const app = express()
const port = 3000
app.listen(port, ()=> console.log(`Dolphin app listening on port ${port}!`))Örneği nodemon ile çalıştırın:
nodemon server.jsTerminal çıktısı aşağıdaki çıktıyı görüntüler:
Output
[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`
Dolphin app listening on port 3000!Nodemon çalışırken server.js dosyasında bir değişiklik yapalım. Çıktıyı başka bir mesajla değiştirelim: Shark uygulaması ${port}! portunu dinliyor.
Terminal çıktısı aşağıdaki çıktıyı görüntüler:
Output
[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
Shark app listening on port 3000!Node.js uygulamasının terminal çıktısı yeni değişiklikleri gösteriyor.
İstediğiniz zaman yazabilirsiniz rs ve vurarak GİRMEKİşlemi yeniden başlatın.
Öte yandan nodemon, projenizin package.json dosyasında belirtilen ana dosyayı da arayacaktır:
{
// ...
"main": "server.js",
// ...
}Ana dosya belirtilmezse, nodemon bir başlatma betiği arar:
{
// ...
"scripts": {
"start": "node server.js"
},
// ...
}package.json dosyasında değişiklik yaptıktan sonra, server.js dosyasına bakmadan örnek uygulamayı izleme modunda başlatmak için nodemon'ı çağırabilirsiniz.
Adım 3 – nodemon seçenekleri
Nodemon için mevcut yapılandırma ayarlarını değiştirebilirsiniz.
Başlıca seçeneklerden bazılarını inceleyelim:
- –exec: Dosyayı çalıştırmak için bir ikili dosya belirtmek üzere –exec anahtarını kullanın. Örneğin, ts-node ikili dosyasıyla birleştirildiğinde, –exec, değişiklikleri izlemek ve TypeScript dosyalarını çalıştırmak için yararlı olabilir.
- –ext: İzlenecek farklı dosya uzantılarını belirtin. Bu anahtar için, virgülle ayrılmış bir dosya uzantıları listesi sağlayın (örneğin, –ext js,ts).
- –delay: Varsayılan olarak, nodemon bir dosya değiştiğinde işlemi yeniden başlatmadan önce bir saniye bekler, ancak –delay anahtarıyla farklı bir gecikme süresi belirleyebilirsiniz. Örneğin, nodemon –delay 3.2, 3,2 saniyelik bir gecikme için kullanılır.
- –watch: İzlenecek birden fazla dizin veya dosya belirtmek için –watch anahtarını kullanın. İzlemek istediğiniz her dizin için bir –watch anahtarı ekleyin. Varsayılan olarak, geçerli dizin ve alt dizinleri izlenir, bu nedenle -watch ile belirli alt dizinler veya dosyalarla sınırlayabilirsiniz.
- –ignore: Belirli dosyaları, dosya düzenlerini veya dizinleri yoksaymak için –ignore anahtarını kullanın.
- –verbose: Başlangıcı yeniden başlatmak için hangi dosyanın/dosyaların değiştirildiğine dair bilgi içeren daha ayrıntılı bir çıktı.
Aşağıdaki komutla tüm kullanılabilir seçenekleri görebilirsiniz:
nodemon --helpBu seçenekleri kullanarak aşağıdaki senaryoyu karşılayacak bir komut oluşturalım:
- Sunucu dizinini izleme
- .ts uzantılı dosyaları belirtin
- .test.ts uzantılı dosyaları yoksay
- (server/server.ts) dosyasını ts-node ile çalıştırma
- Dosyayı değiştirdikten sonra yeniden başlatmak için üç saniye bekleyin
nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts
Terminal çıktısı aşağıdaki çıktıyı görüntüler:
Output
[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): server
[nodemon] watching extensions: ts
[nodemon] starting `ts-node server/server.ts`Bu komut, senaryomuzun gereksinimlerini karşılamak için –watch, –ext, –exec, –ignore ve –delay seçeneklerini birleştirir.
Adım 4 – Nodemon'u yapılandırın
Önceki örnekte, nodemon çalıştırılırken yapılandırma anahtarları eklemek sıkıcı olabilir. Karmaşık ayarlar gerektiren projeler için daha iyi bir çözüm, bu seçenekleri bir nodemon.json dosyasında tanımlamaktır.
Örneğin, burada önceki komut satırı örneğiyle aynı yapılandırmalar var, ancak nodemon.json dosyasına yerleştirilmişler:
{
"watch": [
"server"
],
"ext": "ts",
"ignore": [
"*.test.ts"
],
"delay": "3",
"execMap": {
"ts": "ts-node"
}
}–exec anahtarı yerine execMap kullanımına dikkat edin. execMap, belirli dosya uzantıları için ikili dosyaları belirtmenize olanak tanır.
Alternatif olarak, projenize nodemon.json yapılandırma dosyası eklemeyi tercih etmiyorsanız, bu ayarları nodemonConfig anahtarı altındaki package.json dosyasına ekleyebilirsiniz:
{
"name": "nodemon-example",
"version": "1.0.0",
"description": "",
"nodemonConfig": {
"watch": [
"server"
],
"ext": "ts",
"ignore": [
"*.test.ts"
],
"delay": "3",
"execMap": {
"ts": "ts-node"
}
},
// ...nodemon.json veya package.json dosyasında değişiklik yaptıktan sonra nodemon'u istediğiniz script ile başlatabilirsiniz:
nodemon server/server.tsnodemon ayarları alır ve kullanır. Bu sayede ayarlarınız kaydedilebilir, paylaşılabilir ve çoğaltılabilir, böylece komut satırında kopyalama-yapıştırma veya yazım hatalarından kaçınılabilir.
Sonuç
Bu makalede, Node.js uygulamalarınızla Nodemon'ı nasıl kullanacağınızı öğrendiniz. Bu araç, değişiklikleri görmek için Node sunucunuzu durdurma ve başlatma sürecini otomatikleştirmeye yardımcı olur.









