侧边栏壁纸
博主头像
AngusWong's博客 博主等级

行动起来,活在当下

  • 累计撰写 25 篇文章
  • 累计创建 26 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

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

Administrator
2021-04-15 / 0 评论 / 0 点赞 / 9 阅读 / 0 字
[h2title]一、安装好数据库和node环境[/h2title] 这个我使用宝塔管理安装的 [h2title]二、部署yapi[/h2title]
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配置的端口},初次运行会有个编译的过程,请耐心等候
[h2title]三、修改后正式发布需要安装打包工具[/h2title] 安装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
[h2title]四、打包编写测试好的程序[/h2title]
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
[info] Bundling Finishes in 51s.
  [h2title]五、启动服务器[/h2title]
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
  [h2title]六、附录(pm2的一些命令)[/h2title]
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         # 杀死全部进程
 
0

评论区