Mac Yapi 内网安装保姆级步骤

前言

最近有个同事问我Yapi的idea插件上传接口失败的原因,然后我自己下载了Easy Yapi插件进行测试,发现插件设置面板中无Yapi的配置,也就无法复现失败的原因,心血来潮那就本地安装一个Yapi呗,所以有了这边文章的来源,我会一步步的将我安装步骤和出现问题后解决方法都附上,各位如果安装的时候,也出现问题,请对号入座。

正文

打开Yapi的官方github地址 官方Yapi github地址

 环境要求是 nodejs和mongodb而且有版本要求,这里先透露点这个版本号有很大的误区,大坑。

安装nodejs

这里先介绍2个node的版本管理工具,npm 和n

npm用过nodejs的知道,用于管理nodejs的版本,一般我们无需单独安装,他会随着我们安装nodejs的时候一起安装,这里我们通过另外一个版本管理工具n,因为n在版本切换和下载太好用,太方便

n

n是node的一个模块,安装起来也是很方便的,通过下面命令执行

$ sudo npm install -g n

 安装完以后,我们查看版本号通过执行下面命令

n --version

我本地的版本号是 9.0.0 如下图所示

 这里只介绍几个常用的命令

安装或者切换nodejs版本

n  版本号

列出当前已经安装的 nodejs

n ls

 为了安装yapi,我摸索下载这么多版本

 安装nodejs

通过上面的介绍,这里安装nodejs简直太方便了,根据官网nodejs要求的版本号是7.6+,那么我们这里就安装 7.6,通过执行下面命令

n 7.6.0

安装成功后,我们在安装mongodb

mongodb

下载压缩包

我是通过官方下载mongodb 压缩包,本地减压后执行的命令安装

mongodb官网社区版下载

 我已经下载好了,大家如何不想去官网下载,我这里有安装包,点击下面链接下载也是比较快的mongodb下载地址

创建环境不要的文件夹

下载后进行解压,双击或者解压命令都可以,我们创建一个文件夹,将解压后的文件夹拖追过去,我是在/usr/local/下新建一个mongdb文件夹,将其放到该文件夹下。这里有一个问题,/usr/local文件默认没有读写权限的,所以我们接下来执行下面命令对其赋权

sudo chown  自己电脑名称 /usr/local/mongodb

 执行后,输入密码回车就可以了。

创建data、log文件夹,随便找个有权限的地址创建即可,我是在mongodb当前文件夹下创建的。如下图所示

同样创建log 文件,如下图所示

配置环境变量

打开base_profile文件,执行步骤如下图所示

执行完1、2步骤后,在base_profile文件里添加

export PATH=/usr/local/mongodb/bin:${PATH} 

 /usr/local/mongodb 路径换成你安装mongodb自己的路径,保存后文件后在执行步骤4即可。

到了验证环境变量是否生效的时候了,通过执行下面命令

mongod -v

 如果执行后报错,那么我们将错误信息,复制出来,在信息里会找到如下段错误信息

mongodb-27017.sock","error":"Permission denied"}}

没有权限,那么我们执行  sudo  mongod -v ,一般就没问题了

启动mongdb

依次执行如下命令,我们为了避免权限不足的情况,在执行的时候加上了sudo 

 如果执行报错,一般是 data权限不足,将该文件夹重新赋读写权限即可。

启动后默认是无库,无用户名,无密码,我们验证是否启动成功,用客户端工具链接验证,我这里借住的是datagrip工具,如下图所示

点击下方的测试链接,如果显示成功,那么在点击OK。

 新开一个connsole,执行  use yapi命令,创建yapi需要的库。

安装Yapi

到这里才算是正真安装我们需要的软件了。

下载包

依次执行下面命令

npm install -g yapi-cli --registry https://registry.npm.taobao.org

yapi server

 执行完会看到控制台打印出下面这行 http://0.0.0.0:9090/ 

安装

安装Yapi 从官网看到,有2种方式,如下图

 可视化部署和命令行部署,这里强烈建议采用命令行部署,原因都是泪。

采用可视化部署的时候,大家看下面几张报错情况

开始我node的版本号是最新的,然后抱上面错,原因是nodejs的版本号太高了,那么将其切换到环境要求的最低版本 7.6.0,执行后

没有结果了。

从控制台看到说是 nodejs的版本号太低了,我j将其升级到14.2.0 的时候,又开始提升npm 版本太低,

当我讲npm升级到最新的时候,又开始提示node 版本太低,nodejs和npm的版本号直接的对应的对应关系太难找了,和官方要求的7.6.0很有出入,最后将node版本定格在12.18.2 ,npm的版本号 6.14.5的时候,终于不再包这个错,而且这个时候yapi的安装版本号要选择 1.8.8。

你们以为这样就可以了吗?太小瞧困难了,不再抱版本号的问题,但是链接mongodb的时候,又报错了,如下图所示:

Error: (node:90198) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

大概意思是提示让 useUnifiedTopology: true参数加到mongo客户端调用的构造方法中。这不就简单么,我们找到链接的代码,将其加入到构造方法中即可,又开始找代码中,终于经过 install.js、yapi.js、util/db.js关联文件找到链接mongodb的构造方法定义在db.js中,如图所示

 修改配置、重启服务、开始部署,结果还是报上诉错,查看db.js的时候,发现刚刚加的配置没有了,说明这个文件是实时生成,这些就犯难了,难道要找db.js这个文件是如何生成的吗?太困难了。正当犯愁的时候,看到部署yapi还有另外一种方法。那就试试另外一种方法吧。

根据上图中的步骤,我们只要执行红框中的步骤即可,其他步骤已经在执行可视化界面的时候生成了,按照上述步骤执行又出现错误,根据错误信息,能看出来是初始化管理员账号失败,那么将mongodb user表删除后,再执行 run install --server 显示下面一段内容

幸福来的太突然了,这就成功了,有点不相信,那就试着打开链接看看,天亮了,出现了登陆界面,输入提示的用户名和密码,出现下面一幕

 尽然真的可以了,幸福来的太突然了。经历了无数次失败后,采用另外一种方式部署后,竟然成功了。

总结

当前安装版本如下

nodejs:v12.18.2

n:

n --version
v9.0.0

npm :6.14.5

Yapi安装版本号:1.8.8

mongo版本号:

mongod -version
db version v6.0.1
Build Info: {
    "version": "6.0.1",
    "gitVersion": "32f0f9c88dc44a2c8073a5bd47cf779d4bfdee6b",
    "modules": [],
    "allocator": "system",
    "environment": {
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

启动命令

mongo

sudo mongod --dbpath data

yapi

cd /my-yapi/vendor/server

node app.js

留言

 大家在部署Yapi遇到问题,可以在下面留言,毕竟我是踩过无数次坑的人,可能比官网更能解决大家遇到的问题。

猜你喜欢

转载自blog.csdn.net/zanpengfei/article/details/127005783