YApi踩坑记(二):二次开发及重新打包发布

3,072 阅读2分钟

背景

上文说到,YApi虽是一个强大的APi管理测试平台,但又存在着一些不容忽视的瑕疵,如:

  1. 目录层级只有一级,对于目录层级比较复杂的业务系统不太友好。
  2. 只能通过注册方式新增用户,不能由管理员创建用户及新的管理员。 那么我们该如何动手修改源码,添加一些自己的Idea进去呢?

开发环境,启动!

还记得部署环境到最后一步的时候,启动服务的命令吧:

node server/app.js

这一命令虽然能够启动服务,但无法做到热部署,我们修改的代码不能立即反映到页面,而是需要打包后再重启服务。

那么有没有开发者模式呢?答案是有的

我们现在需要做的就是,将上面的命令换成我们的开发环境启动命令:

npm run dev-client
npm run dev-server

需要注意的事,这两个命令执行时有一部分linux指令,所以在windows控制台执行会报错, 如果就想在win上进行的话,可以利用gitbash实现:

  1. 下载安装git
  2. 在vendors下右键,选择 'Git Bash Here'命令
  3. 执行命令启动环境(要开两个窗分别执行哦)

这样我们就以开发模式启动了项目,可以实现热部署啦~

动手修改

以文章开头提到的需求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拥有了多级目录

3.png

但是如果我们使用

  node server/app.js

启动服务,发现修改并未生效,Why?
因为修改完代码后没有重新打包,这个命令启动的还是之前的静态资源和服务 此时我们使用:

  ykit pack -m

再次打包,然后再运行

  node server/app.js

启动生产环境就好啦~