Dalam Node.js, Anda perlu memulai ulang proses untuk menerapkan perubahan. Ini menambah langkah ekstra ke alur kerja Anda demi menerapkan perubahan. Anda dapat menghilangkan langkah ekstra ini dengan nodemon
untuk memulai ulang prosesnya secara otomatis.
nodemon
adalah antarmuka baris-perintah (CLI) yang dikembangkan oleh @rem yang mengemas aplikasi Node Anda, memantau sistem berkas, dan secara otomatis memulai ulang proses.
Dalam artikel ini, Anda akan mempelajari tentang menginstal, menyiapkan, dan mengonfigurasi nodemon
.
Jika Anda ingin mengikuti artikel ini, Anda membutuhkan:
nodemon
Pertama, Anda perlu menginstal nodemon
di mesin Anda. Instal utilitas secara global maupun secara lokal pada proyek Anda menggunakan npm atau Yarn:
Anda dapat menginstal nodemon
secara global dengan npm
:
- npm install nodemon -g
Atau dengan Yarn:
- yarn global add nodemon
Anda juga dapat menginstal nodemon
secara lokal dengan npm. Ketika melakukan instalasi lokal, kita dapat menginstal nodemon
sebagai dependensi dev dengan --save-dev
(atau --dev
):
- npm install nodemon --save-dev
Atau dengan Yarn:
- yarn add nodemon --dev
Satu hal yang harus disadari dengan instalasi lokal adalah Anda tidak akan dapat menggunakan perintah nodemon
secara langsung dari baris perintah:
- Outputcommand not found: nodemon
Namun, Anda dapat menggunakannya sebagai bagian dari skrip npm atau dengan npx.
Ini adalah akhir dari proses instalasi nodemon
. Selanjutnya, kita akan menggunakan nodemon
dengan proyek kita.
nodemon
Kita dapat menggunakan nodemon
untuk memulai skrip Node. Misalnya, jika kita memiliki penyiapan server Express di dalam berkas server.js
, kita dapat memulainya dan memantau perubahan seperti ini:
- nodemon server.js
Anda dapat memasukkan argumen dengan cara yang sama seperti Anda menjalankan skrip dengan Node:
- nodemon server.js 3006
Setiap kali Anda membuat perubahan terhadap berkas dengan salah satu dari ekstensi asali yang dipantau (.js
, .mjs
, .json
, .coffee
, atau .litcoffee
) di dalam direktori atau subdirektori saat ini, proses akan memulai ulang.
Mari kita asumsikan kita menulis suatu berkas contoh server.js
yang mengeluarkan pesan: Dolphin app listening on port ${port}!
.
Kita dapat menjalankan contoh dengan nodemon
:
- nodemon server.js
Kita akan melihat keluaran terminal berikut:
Output[nodemon] 1.17.3
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server.js`
Dolphin app listening on port 3000!
Sementara nodemon
masih berjalan, mari kita buat perubahan terhadap berkas server.js
untuk mengeluarkan pesan: Shark app listening on port ${port}!
.
Kita akan melihat keluaran terminal tambahan berikut:
Output[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
Shark app listening on port 3000!
Keluaran terminal dari aplikasi Node.js akan menampilkan seperti yang diharapkan. Anda dapat memulai ulang prosesnya kapan pun dengan mengetik rs
dan menekan ENTER
.
Sebagai alternatif, nodemon
juga akan mencari berkas main
yang ditentukan dalam berkas package.json
dari proyek Anda:
{
// ...
"main": "server.js",
// ...
}
Atau, skrip start
:
{
// ...
"scripts": {
"start": "node server.js"
},
// ...
}
Setelah Anda membuat perubahan pada package.json
, Anda kemudian dapat memanggil nodemon
untuk memulai aplikasi contoh di mode pemantauan tanpa harus memasukkan server.js
.
Anda dapat memodifikasi pengaturan konfigurasi yang tersedia untuk nodemon
.
Mari kita bahas beberapa opsi utama:
--exec
: Pakai switch --exec
guna menentukan biner untuk mengeksekusi berkas. Misalnya, saat dikombinasikan dengan biner ts-node
, --exec
dapat menjadi berguna untuk memantau perubahan dan menjalankan berkas TypeScript.--ext
: Menentukan ekstensi berkas berbeda yang harus dipantau. Untuk switch ini, berikan daftar ekstensi berkas yang harus dipisahkan oleh koma (misalnya, --ext js,ts
).--delay
: Secara asali, nodemon
menunggu selama satu detik untuk memulai ulang proses saat berkas berubah, tetapi dengan switch --delay
, Anda dapat menentukan waktu tunggu yang berbeda. Misalnya, nodemon --delay 3.2
untuk penundaan selama 3,2 detik.--watch
: Gunakan switch --watch
untuk menentukan beberapa direktori atau berkas yang harus dipantau. Tambahkan satu switch --watch
untuk setiap direktori yang ingin Anda pantau. Secara asali, direktori dan subdirektori saat ini telah dipantau, jadi dengan --watch
Anda dapat mempersempitnya hanya ke subdirektori atau berkas tertentu.--ignore
: Gunakan switch --ignore
untuk mengabaikan berkas, pola berkas, atau direktori tertentu.--verbose
: Keluaran verbose yang lebih banyak dengan informasi tentang berkas-berkas yang berubah sehingga memicu pemulaian ulang.Anda dapat melihat semua opsi yang tersedia dengan perintah berikut:
- nodemon --help
Dengan menggunakan opsi ini, mari kita ciptakan perintah untuk memenuhi skenario berikut:
server
.ts
.test.ts
server/server.ts
) dengan ts-node
- nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts
Perintah ini mengombinasikan opsi --watch
, --ext
, --exec
, --ignore
, dan --delay
untuk memenuhi kondisi skenario kita.
Dalam contoh sebelumnya, menambahkan switch konfigurasi saat menjalankan nodemon
bisa menjadi cukup membosankan. Solusi yang lebih baik untuk proyek yang memerlukan konfigurasi spesifik adalah dengan menentukan konfigurasi ini dalam berkas nodemon.json
.
Misalnya, ini adalah konfigurasi yang sama seperti contoh baris perintah sebelumnya, tetapi ditempatkan di dalam berkas nodemon.json
:
{
"watch": ["server"],
"ext": "ts",
"ignore": ["*.test.ts"],
"delay": "3",
"execMap": {
"ts": "ts-node"
}
}
Perhatikan penggunaan execMap
alih-alih switch --exec
. execMap
memungkinkan Anda untuk menentukan biner yang harus digunakan untuk ekstensi berkas tertentu.
Sebagai alternatif, jika Anda lebih memilih untuk tidak menambahkan berkas konfigurasi nodemon.json
ke proyek, Anda dapat menambahkan konfigurasi ini ke berkas package.json
di bawah kunci nodemonConfig
:
{
"name": "test-nodemon",
"version": "1.0.0",
"description": "",
"nodemonConfig": {
"watch": [
"server"
],
"ext": "ts",
"ignore": [
"*.test.ts"
],
"delay": "3",
"execMap": {
"ts": "ts-node"
}
},
// ...
Setelah Anda membuat perubahan pada nodemon.json
atau package.json
, Anda kemudian dapat memulai nodemon
dengan skrip yang diinginkan:
- nodemon server/server.ts
nodemon
akan mengambil konfigurasinya dan menggunakannya. Dengan cara ini, konfigurasi Anda dapat disimpan, dibagikan, dan diulang untuk menghindari salin-tempel atau kesalahan tik di baris perintah.
Dalam artikel ini, Anda telah mendalami cara menggunakan nodemon
dengan aplikasi Node.js. Alat ini membantu mengotomatiskan proses memberhentikan dan memulai server Node untuk melihat perubahan.
Untuk informasi lebih lanjut tentang fitur dan pemecahan masalah yang tersedia, lihat dokumentasi resmi.
Jika Anda ingin mempelajari lebih lanjut tentang Node.js, lihat laman topik Node.js. kami untuk proyek latihan dan pemrograman.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!