http-server 是一个可以直接指定端口启动本地静态服务器的 npm 包,但它只是选项之一。以下是详细对比:
📦 主要选择
1. http-server
bash
# 全局安装
npm install -g http-server
# 启动(默认端口 8080)
http-server
# 指定端口
http-server -p 3000
# 或
http-server --port 8081
# 更多选项
http-server -p 3000 -a localhost -o # -o 自动打开浏览器
特点:
- ✅ 纯静态文件服务器
- ✅ 零配置,开箱即用
- ✅ 适合纯 HTML/CSS/JS 项目
- ❌ 无热更新(HMR)、无模块打包
2. serve(Vercel 出品)
bash
# 安装
npm install -g serve
# 启动并指定端口
serve -p 3000
特点:
- 更现代,默认 Gzip 压缩
- 适合部署预览
3. live-server(带热更新)
bash
# 安装
npm install -g live-server
# 启动
live-server --port=3000
特点:
- ✅ 支持热更新(修改文件自动刷新)
- ✅ 适合静态页面开发
⚙️ 框架自带开发服务器(更常用)
这些打包工具自带的开发服务器功能更强大:
Vite
bash
# package.json 中
"scripts": {
"dev": "vite --port 3000"
}
# 或启动时指定
npm run dev -- --port 3000
Webpack Dev Server
bash
# webpack.config.js
devServer: {
port: 3000
}
Create React App
bash
# 环境变量指定端口
PORT=3000 npm start
# 或在 .env 文件中添加
PORT=3000
📊 如何选择?
| 场景 | 推荐工具 | 示例命令 |
|---|---|---|
| 快速预览静态网站 | http-server |
http-server -p 3000 |
| 静态开发带热更新 | live-server |
live-server --port=3000 |
| 现代框架项目 | Vite | npm run dev -- --port 3000 |
| React 项目 | CRA | PORT=3000 npm start |
| 简单部署预览 | serve |
serve -p 3000 |
🎯 推荐方案
如果你只需要纯静态服务器:
bash
# 安装
npm install -g http-server
# 在项目目录运行
http-server ./dist -p 3000 -c-1 # -c-1 禁用缓存
如果你在开发项目:
用框架自带的开发服务器(Vite/webpack),因为它们支持:
- 模块热更新(HMR)
- 模块打包
- 代理、API 转发等
http-server 确实可以指定端口启动本地前端,但它是静态服务器,适合最终构建产物的预览,不适合现代前端开发工作流。