Od strony man , npm start:
uruchamia skrypt „startowy” pakietu, jeśli został dostarczony. Jeśli żadna wersja nie jest określona, uruchamia wersję „aktywną”.
Trzeba przyznać, że ten opis jest całkowicie nieprzydatny i to wszystko, co mówi. Przynajmniej jest to bardziej udokumentowane niż socket.io.
W każdym razie to, co naprawdę się dzieje, to to, że npm wygląda w twoim pliku package.json i jeśli masz coś takiego
"scripts": {"start": "coffee server.coffee"}
wtedy to zrobi. Jeśli npm nie może znaleźć twojego skryptu startowego, domyślnie:
węzeł server.js
Dokumentacja została zaktualizowana . Moja odpowiedź ma istotne zmiany w porównaniu z odpowiedzią zaakceptowaną: chciałem, aby dokumentacja była aktualna, a zaakceptowana odpowiedź zawiera kilka niedziałających linków.
Nie rozumiałem też, kiedy zaakceptowana odpowiedź brzmiała „domyślnie
node server.js
”. Myślę, że dokumentacja wyjaśnia domyślne zachowanie:Podsumowując, bieganie
npm start
może zrobić jedną z dwóch rzeczy:npm start {command_name}
: Uruchom dowolne polecenie (tj. Jeśli takie polecenie jest określone westart
właściwości obiektu package.jsonscripts
)npm start
: W przeciwnym razie, jeśli żadnastart
właściwość nie istnieje (lub niecommand_name
została przekazana): Uruchomnode server.js
(co może nie być właściwe , na przykład OP nie maserver.js
; OP działanode
app.js
)package.json
w katalogu, w którym uruchamiasznpm start
, możesz zobaczyć błąd:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'
źródło