Bagaimana menjalankan skrip start dengan Nodemon

90

Bagaimana saya bisa menjalankan skrip start dari file package.json dengan Nodemon?

Citronen
sumber
Anda yakin dapat menjalankan skrip start dari package.json? Karena dari apa yang saya tahu package.json adalah mencantumkan semua dependensi Anda dan nodemon adalah untuk menjaga proses Anda tetap berjalan. Saya tidak yakin apa yang Anda maksud di sini?
Saras Arya

Jawaban:

142

Ini akan menjadi perintah sederhana untuk ini

nodemon --exec npm start
Ashutosh Jha
sumber
Bagaimana jika saya hanya perlu menjalankan pengujian tanpa menjalankan aplikasi? Solusi Anda menjalankan keduanya.
Sergey
1
ini berjalan npm starttetapi tidak memulai server node untuk saya .. bagaimana ia tahu di mana server.js berada?
Sonic Soul
39

Dalam paket json:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

Kemudian dari terminal Anda dapat menggunakan npm start

Instalasi Nodemon: https://www.npmjs.com/package/nodemon

Murat Ozgul
sumber
1
Maaf, mencari cara untuk mengeksekusi skrip start dengan nodemon, bukan mengeksekusi nodemon di skrip start. Maaf jika itu tidak jelas.
Citronen
6
Tidak akan npm startgagal dalam produksi karena kurangnya nodemon?
ripper234
2
npm run starttidaknpm start
M. Dhaouadi
1
Saya seorang pemula dengan npm. Saya tidak mengerti mengapa kita perlu menentukan skrip awal sementara kita dapat menggunakan nodemon di luar kotak? Saya hanya menginstal nodemon dengan npm dan menggunakannya secara langsung tanpa menentukan skrip apa pun dan berfungsi dengan sempurna.
Hokhy Tann
@ M.Dhaouadi npm startadalah alias untuknpm run start
George
16

Saya memiliki file TypeScript bernama "server.ts", Skrip npm berikut mengkonfigurasi Nodemon dan npm untuk memulai aplikasi saya dan memantau setiap perubahan pada file TypeScript:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

Saya sudah memiliki Nodemon pada dependensi. Ketika saya menjalankan npm start, ia akan meminta Nodemon untuk memantau file-nya menggunakan -esakelar dan kemudian memanggil myappskrip npm yang merupakan kombinasi sederhana dari mentranspilasi file skrip dan kemudian memulai server.js yang dihasilkan. Ketika saya mengubah file TypeScript, karena -eperalihan siklus yang sama terjadi dan file .js baru akan dibuat dan dijalankan.

MehranTM
sumber
14

Saya menggunakan Nodemon versi 1.88.3 dalam proyek Node.js saya. Untuk menginstal Nodemon, lihat di https://www.npmjs.com/package/nodemon .

Periksa package.json Anda, lihat apakah "scripts" telah berubah seperti ini:

  "scripts": {
    "dev": "nodemon server.js"
  },

server.jsadalah nama file saya, Anda dapat menggunakan nama lain untuk file ini seperti app.js.

Setelah itu, jalankan ini di terminal Anda: npm run dev

Sukma Saputra
sumber
6

Penggunaan -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"
KeatsPeeks
sumber
Apakah ada cara lain selain eksekutif untuk melakukan ini?
Citronen
Hanya nodemon [options] --exec 'npm start -s'jika Anda ingin melakukannya dari baris perintah.
nathanhleung
@ArnoldRoa Instal.
Константин Ван
5

Pertama ubah file package.json Anda ,

"scripts":
    { 
        "start": "node ./bin/www",
        "start-dev": "nodemon ./app.js"
    },

Setelah itu, jalankan perintah

npm run start-dev
rkeshri
sumber
1
Tapi ketika Anda kabur dari app.jsAnda melewati semua yang ./bin/www...
Jake Wilson
1
ini membuka tab baru setiap kali
Qui-Gon Jinn
5

Dalam file package.json. ubah file seperti ini

"scripts":{ 
   "start": "node ./bin/www", 
   "start-dev": "nodemon ./app.js"
 },

dan kemudian jalankan npm run start-dev

Sohail Ahmad
sumber
2

Jika dipasang secara global maka

"scripts": {
    "start": "nodemon FileName.js(server.js)",
},

Pastikan Anda telah menginstal nodemonsecara global:

npm install -g nodemon

Terakhir, jika Anda adalah pengguna Windows, pastikan bahwa batasan keamanan Windows PowerShell diaktifkan .

Satyam
sumber
1

Anda juga dapat menginstal nodemon secara global untuk sering digunakan:

npm i nodemon -g atau sudo npm i nodemon -g

lalu edit package.json Anda:

  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },

Umumnya, 'dev' menentukan penggunaan pengembangan ( npm run dev ).

dhahn
sumber
1

Ini akan tergantung pada jenis instalasi Nodemon Anda. Jika Anda menginstal Nodemon secara global dengan menggunakan perintah ( npm install nodemon --globalatau npm install nodemon -g), Anda tidak perlu menentukan skrip apa pun untuk Nodemon di file package.json Anda . Hanya menjalankan perintahnodemon index.js akan menjalankan proyek Anda.

Tetapi jika Anda menginstal Nodemon secara lokal dengan perintah npm install nodemonmaka Anda harus menentukan skripnya. Jika Anda menamainya sebagai start maka npm run startatau npm startakan memicu server untuk berjalan.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }
Tuan
sumber
1

Jika Anda telah nodemonmenginstal secara global, menjalankan nodemondalam proyek Anda secara otomatis akan menjalankan startskrip dari package.json.

Sebagai contoh:

"scripts": {
  "start": "node src/server.js"
},

Dari dokumentasi nodemon :

nodemon juga akan mencari properti scripts.start di package.json (mulai dari nodemon 1.1.x).

Alf Eaton
sumber
0

Dalam paket json:

"scripts": {
  "start": "node index",
  "dev": "nodemon index"
},

"devDependencies": {
  "nodemon": "^2.0.2"
}

Dan di terminal untuk mengembangkan:

npm run dev

Dan untuk memulai server biasa:

npm start
amixOV
sumber
Apa itu "regiuler" ? Apakah maksud Anda "biasa" ?
Peter Mortensen
-1

Untuk menghindari penginstalan global, tambahkan Nodemon sebagai dependensi, lalu ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },
zipzit
sumber
Anda masih dapat membuatnya "start-dev": "nodemon ./bin/www" jika Anda menginstalnya di bawah devDependencies
WoLfPwNeR