【问题标题】:What is the difference between npm start and http-server?npm start 和 http-server 有什么区别?
【发布时间】:2021-01-17 19:20:25
【问题描述】:

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

【问题讨论】:

  • 我们不知道 npm start 脚本在您的特定项目中运行什么,所以很难说。例如,如果您使用 Create React App,npm start 运行开发服务器,而 http-server 可用于提供静态生产构建输出。

标签: web npm server web-development-server npm-start


【解决方案1】:

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

这会运行在其“scripts”对象的包的“start”属性中指定的任意命令。如果 "scripts" 对象上没有指定 "start" 属性,它将运行 node 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,否则它们不会知道您想使用http-server 作为您的启动脚本。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 1970-01-01
      • 2021-11-22
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多