Jak wykonać skrypt startowy za pomocą Nodemon

90

Jak mogę wykonać skrypt startowy z pliku package.json za pomocą Nodemon?

Citronen
źródło
Jesteś pewien, że możesz wykonać skrypt startowy z pliku package.json? Ponieważ z tego, co wiem, package.json zawiera listę wszystkich zależności, a nodemon ma utrzymywać działanie procesu. Nie jestem do końca pewien, o czym tu sugerujesz?
Saras Arya

Odpowiedzi:

141

To będzie proste polecenie

nodemon --exec npm start
Ashutosh Jha
źródło
A jeśli muszę uruchamiać tylko testy bez uruchamiania aplikacji? Twoje rozwiązanie działa jednocześnie.
Sergey
1
to działa, npm startale nie uruchamia serwera węzłów dla mnie .. skąd miałoby wiedzieć, gdzie jest server.js?
Sonic Soul
38

W pakiecie json:

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

  }
}

Następnie z terminala możesz użyć npm start

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

Murat Ozgul
źródło
1
Przepraszamy, szukam sposobu na wykonanie skryptu startowego za pomocą nodemon, a nie na wykonanie nodemona w skrypcie startowym. Przepraszam, jeśli to nie było jasne.
Citronen
6
Nie npm startzawiedzie w produkcji z powodu braku nodemona?
ripper234
2
npm run startnienpm start
M. Dhaouadi
1
Jestem początkującym z npm. Nie rozumiem, dlaczego musimy określić skrypt startowy, skoro możemy używać nodemona po wyjęciu z pudełka? Po prostu instaluję nodemona z npm i używam go bezpośrednio bez określania żadnego skryptu i działa idealnie.
Hokhy Tann
@ M.Dhaouadi npm startto alias dlanpm run start
George
16

Mam plik TypeScript o nazwie „server.ts”. Poniższe skrypty npm konfigurują Nodemon i npm do uruchamiania mojej aplikacji i monitorowania zmian w plikach TypeScript:

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

Mam już Nodemon na zależnościach. Kiedy uruchomię npm start, poprosi Nodemona o monitorowanie swoich plików za pomocą -eprzełącznika, a następnie myappwywoła skrypt npm, który jest prostą kombinacją transpilacji plików maszynopisu, a następnie uruchomienia wynikowego server.js. Kiedy zmieniam plik TypeScript, z powodu -eprzełącznika następuje ten sam cykl i nowe pliki .js zostaną wygenerowane i wykonane.

MehranTM
źródło
14

Używam Nodemon w wersji 1.88.3 w moim projekcie Node.js. Aby zainstalować Nodemon, zobacz https://www.npmjs.com/package/nodemon .

Sprawdź swój plik package.json, zobacz, czy „skrypty” zmieniły się w ten sposób:

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

server.jsto moja nazwa pliku, możesz użyć innej nazwy dla tego pliku, na przykład app.js.

Następnie uruchom to na swoim terminalu: npm run dev

Sukma Saputra
źródło
6

Zastosowanie -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"
KeatsPeeks
źródło
Czy istnieje inny sposób niż exec, aby to zrobić?
Citronen
Tylko nodemon [options] --exec 'npm start -s'jeśli chcesz to zrobić z wiersza poleceń.
nathanhleung
@ArnoldRoa Zainstaluj.
Константин Ван
5

Najpierw zmień plik package.json ,

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

Następnie wykonaj polecenie

npm run start-dev
rkeshri
źródło
1
Ale kiedy od ciebie uciekniesz app.js, omijasz wszystko, co ./bin/wwwrobi ...
Jake Wilson,
1
to otwiera nową kartę za każdym razem
Qui-Gon Jinn
5

W pliku package.json. zmień plik w ten sposób

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

a następnie wykonaj polecenie npm run start-dev

Sohail Ahmad
źródło
1

Możesz także zainstalować nodemon globalnie do częstego użytku:

npm i nodemon -g lub sudo npm i nodemon -g

następnie edytuj plik package.json:

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

Ogólnie „dev” określa przeznaczenie rozwojowe ( npm run dev ).

dhahn
źródło
1

Będzie to zależeć od typów instalacji Nodemon. Jeśli instalujesz Nodemon globalnie za pomocą poleceń ( npm install nodemon --globallub npm install nodemon -g), nie musisz określać żadnego skryptu dla Nodemon w pliku package.json . Po prostu wykonuję polecenienodemon index.js spowoduje uruchomienie projektu.

Ale jeśli zainstalujesz Nodemon lokalnie za pomocą polecenia npm install nodemon, musisz określić skrypt. Jeśli nazwać jak zacząć następnie npm run startalbo npm startwywoła serwer do uruchomienia.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }
Lord
źródło
1

Jeśli nodemonzainstalowałeś globalnie, po prostu uruchomienie nodemonw twoim projekcie spowoduje automatyczne uruchomienie startskryptu z package.json.

Na przykład:

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

Z dokumentacji nodemona :

nodemon będzie również szukał właściwości scripts.start w package.json (od nodemon 1.1.x).

Alf Eaton
źródło
0

W opakowaniu json:

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

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

A w terminalu do tworzenia:

npm run dev

A do regularnego uruchamiania serwera:

npm start
amixOV
źródło
Co to jest „rejestrator” ? Czy masz na myśli „zwykły” ?
Peter Mortensen
-1

Aby uniknąć instalacji globalnej, dodaj Nodemon jako zależność, a następnie ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },
zipzit
źródło
Nadal możesz ustawić go jako "start-dev": "nodemon ./bin/www", jeśli zainstalujesz go w devDependencies
WoLfPwNeR