ng serve
obsługuje projekt Angular za pośrednictwem serwera programistycznego
npm start
uruchamia dowolne polecenie określone we właściwości „start” pakietu w jego obiekcie „scripts”. Jeśli właściwość „start” nie jest określona w obiekcie „scripts”, zostanie uruchomiony węzeł server.js.
Wygląda na to, że ng serve
uruchamia wbudowany serwer, podczas gdy npm start
uruchamia serwery węzłów.
Czy ktoś może rzucić na to trochę światła?
angular
angular-cli
ishandutta2007
źródło
źródło
start
polecenie wscripts
obiekcie w twoimpackage.json
robi? Jak myślisz, dlaczego w ogóle jest jakaś różnica?Odpowiedzi:
npm start
uruchomi wszystko, co zdefiniowałeś dlastart
poleceniascripts
obiektu w twoimpackage.json
pliku.Więc jeśli wygląda to tak:
Wtedy
npm start
będzie biecng serve
.źródło
node server.js
(co zakończy się niepowodzeniem, jeśli tego pliku nie ma).npm start
jest lepsze. Aby z niego skorzystaćng serve
, musisz zainstalować kątowe cli globalnie lub odwołać się do niego z bin modułów węzła.W przypadku projektu korzystającego z interfejsu CLI zwykle będzie używany plik ng serv. W innych przypadkach możesz użyć npm start. Tutaj szczegółowe wyjaśnienie:
ng służyć
Będzie obsługiwać projekt, który jest `` świadomy Angular CLI '', tj. Projekt, który został utworzony przy użyciu Angular CLI, w szczególności przy użyciu:
Tak więc, jeśli zbudowałeś projekt za pomocą CLI, prawdopodobnie będziesz chciał użyć ng serv
npm start
Może to być użyte w przypadku projektu, który nie jest świadomy Angular CLI (lub może być po prostu użyte do uruchomienia 'ng serv' dla projektu, który jest świadomy Angular CLI)
Jak podają inne odpowiedzi, jest to polecenie npm, które uruchomi polecenie (polecenia) npm z pliku package.json, które mają identyfikator „start”, a nie wystarczy uruchomić polecenie „ng serv”. W pliku package.json może znajdować się coś podobnego do następującego:
W takim przypadku polecenie „npm start” spowoduje wykonanie następujących poleceń:
Spowoduje to jednoczesne uruchomienie kompilatora TypeScript (obserwującego zmiany kodu) i uruchomienie serwera lite-server Node (którego użytkownicy BrowserSync)
źródło
Z dokumentu
npm-start :
Uruchamia to dowolne polecenie określone we właściwości „start” pakietu w jego obiekcie „scripts”. Jeśli właściwość „start” nie jest określona w obiekcie „scripts”, zostanie uruchomiony węzeł server.js.
co oznacza, że wywoła skrypty startowe z pliku package.json
ng służyć :
Dostarczane przez angular / angular-cli do uruchamiania aplikacji angular2, które zostały utworzone przez angular-cli. kiedy zainstalujesz angular-cli, utworzy pod
C:\Users\name\AppData\Roaming\npm
(dla Windows) plik ng.cmd i wykona"%~dp0\node.exe" "%~dp0\node_modules\angular-cli\bin\ng" %*
Więc używając
npm start
możesz stworzyć własne wykonanie, gdzieng serve
jest tylko dla angular-cliZobacz także: Co się dzieje, gdy uruchamiasz serwis?
źródło
npm ERR! missing script: start
Jest więcej niż to. Wykonywane pliki wykonywalne są różne.
uruchomi lokalny plik wykonywalny twojego projektu, który znajduje się w twoim node_modules / .bin.
uruchomi inny plik wykonywalny, który jest globalny.
Oznacza to, że jeśli sklonujesz i zainstalujesz projekt Angular, który jest tworzony za pomocą angular-cli w wersji 5, a Twoja globalna wersja CLI to 7, możesz mieć problemy z budowaniem ng.
źródło
Jeśli chcesz uruchomić aplikację kątową przeniesioną z innego komputera bez
ng
polecenia, edytujpackage.json
w następujący sposóbNa koniec uruchom zwykłe
npm start
polecenie, aby uruchomić serwer kompilacji.źródło