web-dev-qa-db-ja.com

「npm start」を使用する時期と「ng serve」を使用する時期

ng serveは開発サーバー経由でAngularプロジェクトを提供します

npm startは、パッケージの "scripts"オブジェクトの "start"プロパティで指定された任意のコマンドを実行します。 「scripts」オブジェクトに「start」プロパティが指定されていない場合は、ノードserver.jsが実行されます。

ng serveは組み込みサーバーを起動し、npm startはNodeサーバーを起動するようです。

誰かがそれにいくつかの光を投げることができますか?

114
ishandutta2007

npm startは、package.jsonファイル内のstartオブジェクトのscriptsコマンドに定義したものがすべて実行されます。

それでそれがこのように見えるならば:

"scripts": {
  "start": "ng serve"
}

npm startng serveを実行します。

150
Puigcerber

CLIを使用しているプロジェクトの場合、通常はng serveを使用します。それ以外の場合は、npm startを使用することをお勧めします。ここで詳細な説明:

サーブ

is 'Angular CLI aware'というプロジェクト、つまりAngular CLIを使用して作成されたプロジェクト、特に次のものを提供します。

ng new app-name

そのため、CLIを使用してプロジェクトを足場にした場合は、おそらくng serveを使用することになります。

npmスタート

これは not Angular CLIに対応していないプロジェクトの場合に使用できます(またはAngularであるプロジェクトに対して 'ng serve'を実行するために使用できます。 CLI対応)

他の回答者が述べているように、これは識別子 '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を実行します)を実行します。

26
Chris Halcrow

文書から

npm-start

これは、パッケージの "scripts"オブジェクトの "start"プロパティで指定された任意のコマンドを実行します。 「scripts」オブジェクトに「start」プロパティが指定されていない場合は、ノードserver.jsが実行されます。

つまり、package.json内の起動スクリプトが呼び出されます。

"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite --baseDir ./app --port 8001\" ",
"lite": "lite-server",
 ...
}

ngサーブ

Angular-cliによって作成されたangular2アプリを起動するためにangular/angular-cliによって提供されます。 angular-cliをインストールすると、(Windows用の)C:\Users\name\AppData\Roaming\npmの下にng.cmdが作成され、"%~dp0\node.exe" "%~dp0\node_modules\angular-cli\bin\ng" %*が実行されます。

npm startを使用すると、ng serveはangular-cli専用です。独自の実行を行うことができます。

関連項目: ng serveを実行するとどうなりますか?

10
vels4j

あなたはng serveを使うべきです。そのためnpm startは同じことを実行するスクリプトです。もっと効率的な方法は不要なスクリプトを越えて直接ng serveを呼び出すことです。

0
Heshan

それ以上のものがあります。実行された実行可能ファイルは異なります。

npm run start

node_modules/.binにあるローカル実行可能ファイルをプロジェクトで実行します。

ng serve

グローバルな別の実行可能ファイルを実行します。

つまり、Angular-Cliバージョン5で作成されたグローバルなCLIバージョン7で作成されたAngularプロジェクトを複製してインストールすると、ng buildに問題が生じる可能性があります。

0
yusuf tezel