用于开发 socketio 服务
基于 babel 进行 es6 语法的转译,在开发时使用 es6 语法,发布时转译为 node 可直接解释的 es5 代码
模版计划:
- es6 开发环境 (babel)
- 模块路由映射 (babel-plugin-module-resolver)
- 自动重载 (nodemon)
- 单元测试 (jest)
- 命令行解析 (argparse)
- 文档生成 (docsify)
- 服务日志 (winston)
├── docs # 文档
│ ├── index.html
│ ├── .nojekyll
│ └── README.md
├── project # 开发目录
│ ├── model
│ ├── pages # express 服务
│ │ ├── service # express 服务映射
│ │ │ └── monitor.js
│ │ ├── templates # 前端模板
│ │ │ └── monitor.html
│ │ └── route.js # express 路由
│ ├── socketio # socketio 服务
│ │ ├── hooks # socketio 事件注册
│ │ │ ├── event # 监听注册
│ │ │ │ ├── echo.js
│ │ │ │ └── index.js
│ │ │ └── loop # 轮训事件
│ │ │ ├── broadcast.js
│ │ │ └── index.js
│ │ └── route.js # socketio 事件路由
│ ├── utils
│ │ ├── arg_parse.js
│ │ ├── common.js
│ │ ├── log.js
│ │ └── meta.js
│ ├── config.js
│ └── index.js
├── test # 测试目录
│ └── start.test.js
├── .babelrc # babel 配置文件
├── .editorconfig # editorconfig 配置文件
├── .gitignore
├── jest.json # jest 测试配置文件
├── LICENSE
├── package.json
├── package-lock.json
└── README.md
- 所有的项目开发都在
project目录中进行 release目录用于转译es6语法,结构上与project保持一致,并且额外生成source map,方便运行调试project/utils/arg_parse.js用于命令行解析配置,版本信息来源于package.jsontest目录下包含所有测试用例,只需要测试文件以.test.js作为文件后缀即可,测试同时会输出覆盖率报告,保存在目录下的coverage目录下.babelrc文件主要用于转译配置,包含路由映射配置,暂时将@映射为project目录,可根据需要添加.editorconfig文件为 editorconfig 配置文件,需要编辑器支持jest.json包含测试配置项,其中包含测试用例中的模块映射,这里的模块映射与project下的模块映射不同,不能混在一起config.js中定义了socketio监听的路由,使用版本号控制
npm run dev将使用nodemon一直监听文件变动,将对入口文件进行自动重载npm run build将project目录转译到release目录,并附带source map方便查错npm run serve将开启express服务npm run test将开始测试,并输出覆盖率报告到coverage目录npm run init-docs将初始化文档服务,主要会覆盖docs目录下的README.md文件,即文档服务的首页内容来自整个项目的README.mdnpm run serve-docs将启动文档服务,可进行查看
you are free to make any change
测试用例并非完全局限于 test 目录,现在的配置只要满足 *.test.js 通配的文件都会进行测试
这里只给出了文档服务最基本的配置,更多配置以及插件可以到官网查看 docsify
monitor.html 中给出了测试 socketio 的基础环境