npm start 和 http-server 有什么区别?

问题描述

我是网络开发的初学者。这两个让我很困惑。如果他们都在 localhost 中打开一个页面,那么为什么我需要安装 http-server 而不是仅使用 npm start?

解决方法

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

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

https://docs.npmjs.com/cli/v6/commands/npm-start

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

{
  "scripts": {
    "start": "echo Hello"
  }
}

然后运行 ​​npm start 将打印“Hello”。 npm start 脚本本身不是可执行文件;它只运行 package.json 中指定的任何内容。

http-server 另一方面是启动 HTTP 服务器的特定可执行文件。它可能指的是 http-server npm 包,或命令行界面中可用的具有该名称的其他脚本。

npm start 是其他工具经常使用的约定,例如测试或持续集成,以“启动”您的应用程序,无论它使用什么技术。一个常见的设置是在“启动”脚本中指定特定的启动脚本:

{
  "scripts": {
    "start": "http-server"
  }
}

虽然这使得 npm starthttp-server 在您的项目目录中做同样的事情,但其他工具将依赖于 npm start,否则他们不会知道您想要使用 {{ 1}} 作为您的启动脚本。

,

http-server 是用 JavaScript 为 Node.js 编写的 HTTP 服务器。

npm start 运行 http-server 中指定的 start 脚本。它可能运行网络服务器(可能使用 package.json 编写)并打开浏览器访问它。它可能会做别的事情。它完全可以配置。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...