Web NPMStart和http服务器之间的区别是什么?

Web NPMStart和http服务器之间的区别是什么?,web,npm,server,web-development-server,npm-start,Web,Npm,Server,Web Development Server,Npm Start,我是web开发的初学者。这两个让我困惑。如果它们都在localhost中打开了一个页面,那么为什么我需要安装http服务器而不是只使用npm start?npm start运行package.json中“start”脚本中指定的任何命令。从npm文档中: 这将运行在包的“scripts”对象的“start”属性中指定的任意命令。如果在“scripts”对象上没有指定“start”属性,它将运行node server.js 因此,如果您的package.json包含以下内容: { “脚本”:{

我是web开发的初学者。这两个让我困惑。如果它们都在localhost中打开了一个页面,那么为什么我需要安装http服务器而不是只使用npm start?

npm start
运行package.json中“start”脚本中指定的任何命令。从npm文档中:

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

因此,如果您的
package.json
包含以下内容:

{
“脚本”:{
“开始”:“回声你好”
}
}
然后运行
npm start
将打印“Hello”。
npm start
脚本本身不是可执行文件;它只运行package.json中指定的任何内容

另一方面,http服务器是启动http服务器的特定可执行文件。它可能引用npm包,或者在命令行界面中使用该名称的其他脚本

npm start
是一种惯例,其他工具(如测试或持续集成)经常使用它来“启动”应用程序,而不管它使用的是什么技术。常见的设置是在“开始”脚本中指定特定的启动脚本:

{
“脚本”:{
“开始”:“http服务器”
}
}
虽然这使得
npm start
http服务器
在项目目录中执行相同的操作,但其他工具将依赖
npm start
,因为否则它们不会知道您想要使用
http服务器
作为启动脚本。

是用JavaScript为Node.js编写的http服务器


运行
package.json
中指定的
start
脚本。它可以运行一个web服务器(可以使用
http服务器
编写)并打开浏览器。它可能会做其他事情。它是完全可配置的。

我们不知道npm启动脚本在您的特定项目中运行的是什么,所以很难说。例如,如果您使用的是createreact应用程序,npmstart将运行一个dev服务器,而http服务器可用于提供静态生产构建输出。