背景
上文说到,YApi虽是一个强大的APi管理测试平台,但又存在着一些不容忽视的瑕疵,如:
- 目录层级只有一级,对于目录层级比较复杂的业务系统不太友好。
- 只能通过注册方式新增用户,不能由管理员创建用户及新的管理员。 那么我们该如何动手修改源码,添加一些自己的Idea进去呢?
开发环境,启动!
还记得部署环境到最后一步的时候,启动服务的命令吧:
node server/app.js
这一命令虽然能够启动服务,但无法做到热部署,我们修改的代码不能立即反映到页面,而是需要打包后再重启服务。
那么有没有开发者模式呢?答案是有的
我们现在需要做的就是,将上面的命令换成我们的开发环境启动命令:
npm run dev-client
npm run dev-server
需要注意的事,这两个命令执行时有一部分linux指令,所以在windows控制台执行会报错, 如果就想在win上进行的话,可以利用gitbash实现:
- 下载安装git
- 在vendors下右键,选择 'Git Bash Here'命令
- 执行命令启动环境(要开两个窗分别执行哦)
这样我们就以开发模式启动了项目,可以实现热部署啦~
动手修改
以文章开头提到的需求1为例,我想为YApi添加多级目录,该如何做呢? 首先我们需要了解YApi用到的技术栈:
后端: koa mongoose
前端: react redux
针对技术栈,再分析代码目录结构
-- vendors
|-- CHANGELOG.md
|-- LICENSE
|-- README.md
|-- client
|-- common
|-- config_example.json
|-- doc
|-- exts
|-- nodemon.json
|-- npm-debug.log
|-- package.json
|-- plugin.json
|-- server
|-- static
|-- test
|-- webpack.alias.js
|-- yapi-base-flow.jpg
|-- ydocfile.js
`-- ykit.config.js
client下为界面展示相关代码,server下为实体模型,controller以及与数据库操作相关的api,那我们就有了思路,为原有菜单添加parentId属性用来构造树形结构,重写界面渲染逻辑,以及巴拉巴拉巴拉之类的修改。
打包发布
再经过了亿点修改之后,我们的YApi拥有了多级目录
但是如果我们使用
node server/app.js
启动服务,发现修改并未生效,Why?
因为修改完代码后没有重新打包,这个命令启动的还是之前的静态资源和服务
此时我们使用:
ykit pack -m
再次打包,然后再运行
node server/app.js
启动生产环境就好啦~