我们平时做 web 开发的时候,一般都是需要一个服务器的,vscode 有一个 Live Server 插件,可以快速启动一个本地服务器,但是这个只能在 vscode 中使用,如果我们要用其他编辑器的话,可以尝试着使用 http-server 这个工具

简介

http-server 是一个基于 Node.js 的命令行工具,可以快速搭建一个本地服务器,并且可以指定端口、目录等参数。

主要特点

  1. 简单易用:只需在命令行中输入简单的命令即可启动服务器。
  2. 跨平台:由于基于 Node.js,因此可以在 Windows、Mac 和 Linux 等操作系统上运行。
  3. 支持自定义端口和目录:可以通过命令行参数指定服务器运行的端口和目录。
  4. 静态文件服务:可以方便地为静态文件(如 HTML、CSS、JavaScript 文件)提供服务。
  5. 支持 HTTPS:可以通过配置文件启用 HTTPS 服务。

安装与参数介绍

安装方法
首先,确保你已经安装了 Node.js 和 npm。然后,可以通过 npm 全局安装 http-server:
安装到全局我们可以随时随地开启一个本地的 web 服务器

1
npm install -g http-server

如果只是想临时使用一下,不想安装到全局,可以使用 npx 命令

path 就是你的 web 服务器的根目录,options 则是一些可选参数,比如指定端口、开启 HTTPS 等。

1
npx http-server [path] [options]

以下是对可选参数的详细说明:

title
Command Description Defaults
-p or --port Port to use. Use -p 0 to look for an open port, starting at 8080. It will also read from process.env.PORT. 8080
-a Address to use 0.0.0.0
-d Show directory listings true
-i Display autoIndex true
-g or --gzip When enabled it will serve ./public/some-file.js.gz in place of ./public/some-file.js when a gzipped version of the file exists and the request accepts gzip encoding. If brotli is also enabled, it will try to serve brotli first. false
-b or --brotli When enabled it will serve ./public/some-file.js.br in place of ./public/some-file.js when a brotli compressed version of the file exists and the request accepts br encoding. If gzip is also enabled, it will try to serve brotli first. false
-e or --ext Default file extension if none supplied html
-s or --silent Suppress log messages from output
--cors Enable CORS via the Access-Control-Allow-Origin header
-o [path] Open browser window after starting the server. Optionally provide a URL path to open. e.g.: -o /other/dir/
-c Set cache time (in seconds) for cache-control max-age header, e.g. -c10 for 10 seconds. To disable caching, use -c-1. 3600
-U or --utc Use UTC time format in log messages.
--log-ip Enable logging of the client’s IP address false
-P or --proxy Proxies all requests which can’t be resolved locally to the given url. e.g.: -P http://someurl.com
--proxy-options Pass proxy options using nested dotted objects. e.g.: –proxy-options.secure false
--username Username for basic authentication
--password Password for basic authentication
-S, --tls or --ssl Enable secure request serving with TLS/SSL (HTTPS) false
-C or --cert Path to ssl cert file cert.pem
-K or --key Path to ssl key file key.pem
-r or --robots Automatically provide a /robots.txt (The content of which defaults to User-agent: *\nDisallow: /) false
--no-dotfiles Do not show dotfiles
--mimetypes Path to a .types file for custom mimetype definition
-h or --help Print this list and exit.
-v or --version Print the version and exit.

如果你只是想简单使用的话,那么上面这些参数完全够用了,如果想深入了解的话,可以参考 github 的文档

github 地址

使用示例

首先使用 cd 命令切换你要启动服务器的目标工作目录

在当前目录的终端下执行以下命令,将会启动一个默认的本地服务器,默认监听 8080 端口,并在当前目录下开启服务

1
http-server

启动完成后会输出以下信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Starting up http-server, serving ./

http-server version: 14.1.1

http-server settings:
CORS: disabled
Cache: 3600 seconds
Connection Timeout: 120 seconds
Directory Listings: visible
AutoIndex: visible
Serve GZIP Files: false
Serve Brotli Files: false
Default File Extension: none

Available on:
http://127.0.0.1:8080
http://10.83.10.250:8080
Hit CTRL-C to stop the server

现在你就已经成功启动了一个本地 web 服务器了

如果你的根目录有一个 test.jpg 文件,你可以直接通过浏览器输入 http://127.0.0.1:8080/test.jpg 进行访问