ng serve
通过开发服务器为Angular项目提供服务
npm start
运行在程序包的“脚本”对象的“开始”属性中指定的任意命令。如果在“脚本”对象上未指定“开始”属性,它将运行节点server.js。
似乎ng serve
启动嵌入式服务器,而npm start
启动节点服务器。
有人可以照亮它吗?
ng serve
通过开发服务器为Angular项目提供服务
npm start
运行在程序包的“脚本”对象的“开始”属性中指定的任意命令。如果在“脚本”对象上未指定“开始”属性,它将运行节点server.js。
似乎ng serve
启动嵌入式服务器,而npm start
启动节点服务器。
有人可以照亮它吗?
Answers:
npm start
将运行您为文件start
中的scripts
对象命令定义的任何内容package.json
。
因此,如果看起来像这样:
"scripts": {
"start": "ng serve"
}
然后npm start
将运行ng serve
。
node server.js
(如果该文件不存在,则失败)。
npm start
效果更好。为了使用它,ng serve
您需要全局安装angular cli或从节点模块bin中引用它。
对于使用CLI的项目,通常会使用ng serve。在其他情况下,您可能要使用npm start。这里详细说明:
将服务一个项目,是 “角CLI知道”已使用的角度CLI创建的,即一个项目,特别是使用:
ng new app-name
因此,如果您使用CLI搭建了一个项目,则可能需要使用ng serve
可以将其用于不支持 Angular CLI 的项目(或者可以将其简单地用于运行支持Angular CLI的项目的“ ng serve”)
作为其他答案的状态,这是一个npm命令,它将从package.json运行具有标识符“ start”的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服务器(用户BrowserSync)
来自文件
这将运行在程序包的“脚本”对象的“开始”属性中指定的任意命令。如果在“脚本”对象上未指定“开始”属性,它将运行节点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创建的angular2应用。当您安装angular-cli时,它将在C:\Users\name\AppData\Roaming\npm
(对于Windows)下创建ng.cmd 并执行"%~dp0\node.exe" "%~dp0\node_modules\angular-cli\bin\ng" %*
因此,使用npm start
可以执行自己的执行,ng serve
而仅适用于angular-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
?您为什么认为完全没有区别?