UNPKG

dev-server-cli

Version:

Quickly start a local service to implement testing and file transfer

105 lines (75 loc) 3.24 kB
# dev-server-cli > 基于 Node.js 和 Express 的本地开发服务器 CLI 工具,支持静态文件服务、文件管理、文件上传、API 调试等功能,适用于前端开发、接口联调和文件分发等场景。 ## 特性 - 一行命令快速启动本地静态服务器 - 支持自定义静态目录和端口 - 支持文件浏览、上传、下载 - 支持 API 调试,回显请求内容 - 终端彩色日志输出,友好易用 - 内置安全中间件(CORS、Helmet、Nocache) - 支持多进程启动,提升并发能力 - 支持 API 代理,可将 /api/* 请求转发到指定后端(原生实现,支持 GET/POST/PUT/DELETE/PATCH) - 默认内置 index.html 文件浏览器页面,支持文件/文件夹浏览、上传、下载与局域网共享,无需任何前端框架 ## 安装 ```bash npm install -g dev-server-cli ``` ## 使用方法 ### 启动服务器 ```bash dev-server -d <静态目录> -p <端口> -n <进程数> -t <代理目标> ``` - `-d, --directory` 指定静态文件根目录(默认当前目录) - `-p, --port` 指定端口(默认 3000) - `-t, --proxyTarget` 指定 API 代理目标(如 /api@http://localhost:8080) - `-n, --processesNumber` 启动进程数(默认 1,建议不超过 CPU 核数) 示例: ```bash dev-server -d ./ -p 3000 -n 4 -t /api@http://localhost:8080 ``` ```javascript // Proxy to http://localhost:8080/_health const resp = await fetch('/api/_health'); const text = await resp.text(); console.log(text); ``` ### 访问 - 静态资源:http://localhost:3000/ - 文件管理接口:http://localhost:3000/api/files - API 调试接口:http://localhost:3000/api/debug - 动态 JS 控制器:http://localhost:3000/yourfile.js - API 代理接口:http://localhost:3000/api/xxx (自动转发到代理目标) - 默认首页 index.html 提供可视化文件浏览器,支持: - 目录/文件树浏览,点击文件夹可进入子目录,点击文件直接下载 - 拖拽或点击上传文件,支持多文件上传,自动刷新列表 - 通过局域网访问实现文件共享,适合团队或家庭环境 ## API 说明 ### 1. 文件管理与可视化浏览器 - 默认首页(index.html)为文件浏览器,支持目录树浏览、文件下载、拖拽/点击上传 - `GET /api/files?dir=子目录` 获取目录下文件和文件夹列表 - `POST /api/files?dir=子目录` 上传文件到指定目录(form-data,字段名为 file) ### 2. API 代理与调试 - `ALL /api/*` 若设置 --proxyTarget,则自动代理到目标服务器(支持 GET/POST/PUT/DELETE/PATCH 等),否则回显请求内容,便于接口联调 ### 3. 动态 JS 控制器 - 只需在静态目录(如 controller/hello.js)下创建 JS 文件,并默认导出一个函数: ```js // controller/hello.js module.exports = function (req, res, next) { res.status(200).send('Hello World!'); } ``` - 访问 http://localhost:3000/controller/hello.js 即可动态执行该控制器逻辑。 ## 依赖 - express - commander - cors - morgan - multer - nocache - kleur ## 本地开发与发布 - 本地 dry-run 检查:`npm run publish:check` - 发布 npm 包:`npm run publish` ## License ISC