何时使用'npm start'以及何时使用'ng serve'?

ng serve通过一个开发服务器来服务一个Angular项目

npm start运行包的“scripts”对象的“start”属性中指定的任意命令。 如果在“scripts”对象上没有指定“start”属性,它将运行节点server.js。

看来ng serve启动embedded式服务器,而npm start启动节点服务器。

有人可以抛出一些光?

npm start将运行您为package.json文件中scripts对象的start命令定义的任何内容。

所以如果看起来像这样:

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

然后npm start将运行ng serve

从文件

npm-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 / angular-cli提供,以启动由angular-cli创build的angular2应用程序。 当你安装angular-cli时,它将在C:\Users\name\AppData\Roaming\npm (对于windows)下创buildng.cmd并执行"%~dp0\node.exe" "%~dp0\node_modules\angular-cli\bin\ng" %*

所以使用npm start你可以让你自己的执行在ng serve的地方只适用于angular-cli

另请参见: 运行ng服务时会发生什么?