背景
我们都知道利用 Node.js 可以非常轻易的就编写一个 Web Server。在没有利用集成 Gulp, Webpack,Web Server 等等脚手架工具前,在做一些简单的 Web 应用的时候,我通常的做法是:用 Express.js 封装好一个 Server.js 文件集成到项目中去,以便于开发和测试。例如通过二维码扫描 Chrome 的开发程序到手机端测试,例如需要跨域调用远程服务器 API, 例如 Ajax 异步加载,等等。当然,偶尔也会用用 Nginx 做测试开发环境,但是 Nginx 这玩意还是感觉太重,并且项目组的有些同学觉得安装麻烦,配置复杂,不易上手。
由于我们经常会收到一些活动页面,或者很少页面的开发需求,移动端,PC 端都有,所以如果每次都大张旗鼓的上脚手架,全家桶实在上有点杀鸡用牛刀的感觉。一堆依赖,每次重复的安装,很占用硬盘空间。正因如此,我便希望把现有的基于 Express.js 的 server 给封装成全局的程序,每次在这些小项目需要的时候,直接一个简单的命令行就可以进行开发和测试,要安装简单,轻便,配置简单。于是这个叫cup
的工具就诞生了。
特点
- 随时随地针对项目目录开启 Server 服务
- 全局安装,简单的 CLI
- 支持自定义服务器端口
- 支持远程服务器代理(Proxy)
基本使用
安装
npm install -g mini-cup
示例
| - test
| - css
| - styles
| - index.html
例如当你有个项目简单到只有以上一些文件和文件夹时,需要添加 server 容器来调试开发,你只需要在控制台切换到test
项目所在目录,运行:
cup run test
cup
默认开启的服务器端口是3000
,如果端口占用,或者需要指定其他端口的情况下,则可以通过如下命令:
cup run test -p 8080
通过选项参数-p
指定端口为8080
其他
cup // 默认为命令行当前目录添加server服务
使用自定义配置文件
当我们的项目中需要跨域调用远程接口时,我们可以给项目添加一个名叫config.cup.json
的简单JSON
配置文件,指定服务器地址和代理地址,然后运行命令行即可,如下:
项目目录
| - test
| - css
| - styles
| - index.html
| - config.cup.json
config.cup.json 配置
{
"name": "test",
"listen": 8080,
"root": "./",
"location": {
"/test/*": "./index.html",
"/login": "./index.html"
},
"proxyTable": {
"/api": {
"target": "http://test.api.com",
"changeOrigin": true
}
}
}
参数说明
- name - 项目名称
- listen - 监听端口
- root - 根目录
- location - 指定请求路径返回到指定页面
- proxyTable - 代理设置
location
如果你现在正在开发一个单页应用,例如使用了 React.js 和 React-Router 的 browserHistory 技术,发现全局刷新页面,路由无法正确解析到指定页面时,便可以通过设置location
参数,指定请求路由到指定页面即可
proxyTable
"/api": { // 代理所有api为根路径的请求地址
"target": "http://test.api.com", // 代理目标服务器地址
"changeOrigin": true // 是否改变origin
}
运行
通过添加配置的项目,运行 server 只需要如下命令:
$ cup config
或者
$ cup -c
最后
由于这个小工具是在我现有工作环境下的一个产物,所以使用场景肯定是有限的,我也只是想用它解决些小问题。当然我也知道 Github 上肯定有很多类似的工具,但是我就是不去看!!看了我就不会自己动手了~
最后,如果这个小玩意能帮你的话,欢迎交流,使用和 star~
最后修改于 2017-02-28