Jak mogę wykonać skrypt startowy z pliku package.json za pomocą Nodemon?
Jak mogę wykonać skrypt startowy z pliku package.json za pomocą Nodemon?
Odpowiedzi:
To będzie proste polecenie
nodemon --exec npm start
npm start
ale nie uruchamia serwera węzłów dla mnie .. skąd miałoby wiedzieć, gdzie jest server.js?
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
npm start
zawiedzie w produkcji z powodu braku nodemona?
npm run start
nienpm start
npm start
to alias dlanpm run start
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ą -e
przełącznika, a następnie myapp
wywoł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 -e
przełącznika następuje ten sam cykl i nowe pliki .js zostaną wygenerowane i wykonane.
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.js
to 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
Zastosowanie -exec
:
"your-script-name": "nodemon [options] --exec 'npm start -s'"
nodemon [options] --exec 'npm start -s'
jeśli chcesz to zrobić z wiersza poleceń.
Najpierw zmień plik package.json ,
"scripts":
{
"start": "node ./bin/www",
"start-dev": "nodemon ./app.js"
},
Następnie wykonaj polecenie
npm run start-dev
app.js
, omijasz wszystko, co ./bin/www
robi ...
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
Nodemon emituje zdarzenia przy każdej zmianie stanu; start, restart crash, itd. Możesz dodać plik konfiguracyjny Nodemon (nodemon.json) w następujący sposób:
{
"events": {
"start": "npm run *your_file*"
}
}
Przeczytaj więcej w dziale Zdarzenia Nodemon - uruchamiaj zadania przy starcie serwera, restarcie, awarii, wyjściu .
Jeśli jest zainstalowany globalnie, to
"scripts": {
"start": "nodemon FileName.js(server.js)",
},
Upewnij się, że zainstalowałeś na nodemon
całym świecie:
npm install -g nodemon
Wreszcie, jeśli jesteś użytkownikiem systemu Windows, upewnij się, że włączone jest ograniczenie zabezpieczeń programu Windows PowerShell .
Będzie to zależeć od typów instalacji Nodemon. Jeśli instalujesz Nodemon globalnie za pomocą poleceń ( npm install nodemon --global
lub 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 start
albo npm start
wywoła serwer do uruchomienia.
// Absolutely no need for global installation
"scripts": {
"start": "nodemon index.js"
}
Jeśli nodemon
zainstalowałeś globalnie, po prostu uruchomienie nodemon
w twoim projekcie spowoduje automatyczne uruchomienie start
skryptu z package.json
.
Na przykład:
"scripts": {
"start": "node src/server.js"
},
nodemon będzie również szukał właściwości scripts.start w package.json (od nodemon 1.1.x).
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
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"
},