AngusWong's 博客

  • 首页
  • Linux
  • Mac
  • PHP
  • 数据库
  • 路由相关
专注于计算机相关技术分享
  1. 首页
  2. Linux
  3. 正文

Yapi二次开发后重新打包发布

2021年4月15日 4053点热度 1人点赞 0条评论

一、安装好数据库和node环境

这个我使用宝塔管理安装的

二、部署yapi

mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors --depth=1 //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org  //安装依赖
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置

以上是自动配置,可手动自行修改配置文件

mkdir yapi 
cd yapi
git clone https://github.com/YMFE/yapi.git vendors --depth=1  //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
vi ./config.json

配置文件内容如下:

{
  "port": "3011",
  "adminAccount": "admin@admin.com",
  "db": {
    "servername": "127.0.0.1",
    "DATABASE": "yapi",
    "port": 27017,
    "authSource": ""
  },
  "mail": {
    "enable": true,
    "host": "smtp.163.com",
    "port": 465,
    "from": "***@163.com",
    "auth": {
      "user": "***@163.com",
      "pass": "*****"
    }
  }
}

修改好后安装依赖

cd vendors
npm install  --registry https://registry.npm.taobao.org  //安装依赖

依赖安装好后运行服务器

npm run dev   //启动服务器后,请访问 IP:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候

三、修改后正式发布需要安装打包工具

安装webpack,两种方式安装如下

npm install -g webpack  //全局安装
npm install --save-dev webpack  //安装到项目目录

安装ykit

npm install ykit -g

如果安装过程报错,出现npm ERR!报错,请使用如下命令

npm install ykit -g --unsafe-perm=true --allow-root

四、打包编写测试好的程序

ykit pack -m

若打包过程中,出现目录权限Permission denied报错,解决方法如下:

把目录权限设置为777即可

打包完成后会提示如下

---------------------  YKIT EMITTED ASSETS  ---------------------

[ykit] - lib@e2171384d5189892d237.js - 165.16 KB
[ykit] - manifest@f2f4bd774d6c221b3d5f.js - 713 Bytes
[ykit] - lib2@7f100247a7d4507a47c7.js - 372.60 KB
[ykit] - index@af871e94e37d0fc0cbde.css - 521.18 KB
[ykit] - lib3@7565deae7ca450147979.js - 735.40 KB
[ykit] - index@af871e94e37d0fc0cbde.js - 4992.50 KB
Bundling Finishes in 51s.

 

五、启动服务器

node server/app.js

不过一般情况会使用pm2来管理

1、pm2安装

npm install -g pm2

2、使用pm2来启动yapi

pm2 start server/app.js –-name yapi

3、可使用pm2 list 查看状态

4、如果需要设置自动启动(服务器重启后也需要自动启动),则需要下面两步

pm2 save
pm2 startup

命令结果如下所示:

[root@CloudServer vendors]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2
[root@CloudServer vendors]# pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/www/server/nvm/versions/node/v14.16.0/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failure

ExecStart=/www/server/nvm/versions/node/v14.16.0/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/www/server/nvm/versions/node/v14.16.0/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/www/server/nvm/versions/node/v14.16.0/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
Created symlink from /etc/systemd/system/multi-user.target.wants/pm2-root.service to /etc/systemd/system/pm2-root.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

 

六、附录(pm2的一些命令)

pm2 start app.js --name my-api # 命名进程
pm2 start app.js -i max  # 根据有效CPU数目启动最大进程数目
pm2 start app.js -i 3      # 启动3个进程
pm2 start app.js -x        #用fork模式启动 app.js 而不是使用 cluster
pm2 start app.js -x -- -a 23   # 用fork模式启动 app.js 并且传递参数 (-a 23)
pm2 start app.js --name serverone  # 启动一个进程并把它命名为 serverone
pm2 stop serverone       # 停止 serverone 进程
pm2 start app.json        # 启动进程, 在 app.json里设置选项
pm2 start app.js -i max -- -a 23                   #在--之后给 app.js 传递参数
pm2 start app.js -i max -e err.log -o out.log  # 启动 并 生成一个配置文件,你也可以执行用其他语言编写的app  ( fork 模式):
pm2 start my-bash-script.sh    -x --interpreter bash
pm2 start my-python-script.py -x --interpreter python

pm2 list               # 显示所有进程状态
pm2 monit              # 监视所有进程
pm2 logs               #  显示所有进程日志
pm2 stop all           # 停止所有进程
pm2 restart all        # 重启所有进程
pm2 reload all         # 0秒停机重载进程 (用于 NETWORKED 进程)
pm2 stop 0             # 停止指定的进程
pm2 restart 0          # 重启指定的进程
pm2 startup            # 产生 init 脚本 保持进程活着
pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)
pm2 delete 0           # 杀死指定的进程
pm2 delete all         # 杀死全部进程

 

标签: yapi 接口管理
最后更新:2021年5月27日

Sean

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
分类
  • Linux
  • Mac
  • PHP
  • 其他
  • 前端
  • 数据库
  • 路由相关
最新 热点 随机
最新 热点 随机
macOS Sonoma, macOS Sequoia删除Mac启动台里删不掉的图标 PVE8修改软件仓库源和 CT模板(LXC)源为国内源 Debian12更换国内源 构建宝塔面板Docker镜像 无需root!卸载小米电视/盒子内置应用 检查系统是否被入侵
Linux 添加普通用户,并加入管理员用户组wheel centos7 修改root和home的空间大小 Lumen使用JWT用户认证 Liunx用户和权限相关命令记录 MySql数据库备份与恢复——使用mysqldump 导入与导出 Docker安装宝塔环境

COPYRIGHT © 2021 huangyuqiang.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang