ng serve
Angularプロジェクトを開発サーバー経由で提供する
npm start
パッケージの「scripts」オブジェクトの「start」プロパティで指定された任意のコマンドを実行します。「スクリプト」オブジェクトで「開始」プロパティが指定されていない場合、ノードserver.jsが実行されます。
ng serve
組み込みサーバーをnpm start
起動するのに対し、ノードサーバーを起動するようです。
誰かがそれに光を当てることはできますか?
ng serve
Angularプロジェクトを開発サーバー経由で提供する
npm start
パッケージの「scripts」オブジェクトの「start」プロパティで指定された任意のコマンドを実行します。「スクリプト」オブジェクトで「開始」プロパティが指定されていない場合、ノードserver.jsが実行されます。
ng serve
組み込みサーバーをnpm start
起動するのに対し、ノードサーバーを起動するようです。
誰かがそれに光を当てることはできますか?
回答:
npm start
ファイル内のオブジェクトのstart
コマンドに対して定義したものは何でも実行します。scripts
package.json
したがって、次のような場合:
"scripts": {
"start": "ng serve"
}
その後、npm start
実行されますng serve
。
node server.js
いない場合、それは実行されます(そのファイルがない場合は失敗します)。
npm start
をお勧めします。使用ng serve
するには、angular cliをグローバルにインストールするか、ノードモジュールビンから参照する必要があります。
CLIを使用しているプロジェクトの場合、通常はng serveを使用します。それ以外の場合は、npm startを使用することをお勧めします。ここで詳細な説明:
プロジェクト役立つで特に使用して、角度のCLIを使用して作成された「アンギュラCLI意識」、すなわちAプロジェクトを:
ng new app-name
したがって、CLIを使用してプロジェクトを足場設定している場合は、おそらくng serveを使用する必要があります。
これは、 Angular CLI対応ではないプロジェクトの場合に使用できます(または、Angular CLI対応のプロジェクトに対して「ng serve」を実行するために単に使用できます)。
他の回答が述べるように、これは識別子「start」を持つpackage.jsonからnpmコマンドを実行するnpmコマンドであり、単に「ng serve」を実行する必要はありません。package.jsonに次のようなものを含めることができます。
"scripts": {
"build:watch": "tsc -p src/ -w",
"serve": "lite-server -c=bs-config.json",
"start": "concurrently \"npm run build:watch\" \"npm run serve\""
...
},
"devDependencies": {
"concurrently": "^3.2.0",
"lite-server": "^2.2.2",
この場合、「npm start」を実行すると、次のコマンドが実行されます。
concurrently "npm run build:watch" "npm run serve"
これにより、TypeScriptコンパイラ(コードの変更を監視)が同時に実行され、Node lite-server(BrowserSyncを使用)が実行されます。
ドキュメントから
これにより、「scripts」オブジェクトのパッケージの「start」プロパティで指定された任意のコマンドが実行されます。「スクリプト」オブジェクトで「開始」プロパティが指定されていない場合、ノードserver.jsが実行されます。
つまり、package.json内の開始スクリプトを呼び出します
"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite --baseDir ./app --port 8001\" ",
"lite": "lite-server",
...
}
angular / angular-cliによって提供され、angular-cliによって作成されたangular2アプリを起動します。angular-cliをインストールすると、ng.cmdがC:\Users\name\AppData\Roaming\npm
(Windowsの場合)作成され、実行されます。"%~dp0\node.exe" "%~dp0\node_modules\angular-cli\bin\ng" %*
だから、使用してnpm start
あなたがされ、独自の実行作ることができるng serve
唯一の角度-CLIのですが
npm ERR! missing script: start
ng
コマンドなしで別のマシンから移植された角度アプリを実行したい場合はpackage.json
、次のように編集します
"scripts": {
"ng": "ng",
"start": "node node_modules/.bin/ng serve",
"build": "node node_modules/.bin/ng build",
"test": "node node_modules/.bin/ng test",
"lint": "node node_modules/.bin/ng lint",
"e2e": "node node_modules/.bin/ng e2e"
}
最後に通常のnpm start
コマンドを実行して、ビルドサーバーを起動します。
start
のscripts
オブジェクトのそのコマンドが何をするのを見ましたかpackage.json
?どうして全然違いがあると思いますか?