阿里云服务器(BT面板)Vue+Node(Egg)部署流程

  项目是Vue+Egg,服务器是阿里云的linux,安装了BT面
  这个流程适合,发布不频繁,个人项目,小型项目。
  下一步我会升级为,使用git,或者git+jekins的方式,实现每次merge自动发布。

前端VUE项目部署

项目位置,D:\personalProject\vuepro\coderIndex
node: 10.11.0
vue:2.9.3
elementUI:2.12.0
webpack-dev-server:2.11.5

  1. vue 项目启动 npm run dev
  2. 打包 npm run build 生成dist文件
  3. 压缩 zip
  4. 上传到服务器对应的网站目录下, 推荐两个工具Xftp 6,WinSCP,只推荐这两个工具,需要安装包可以去公众号 “耐撕程序员”,私聊发送关键字“ftp”即可获得下载链接
  5. 解压到当前目录下 unzip dist.zip

知识点:

zip命令

zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件
-r表示递归压缩子目录下所有文件.

unzip

unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;

服务端node,egg框架

E:\egg\egg-example
node: 10.11.0
egg: 2.2.1
egg 官方部署文档:https://eggjs.org/zh-cn/core/deployment.html

JavaScript 语言本身不需要编译的,构建过程主要是下载依赖

$ cd baseDir
$ npm install --production
$ tar -zcvf ../release.tgz .

构建完成后打包成 tgz 文件,部署的时候解压启动就可以了。

随便写了一个,打包脚本 buildAndTar.sh

npm install --production && tar -zcvf ../release.tgz . 
if [ ! -d ../product ];then
mkdir ../product 
else
echo dir exist
fi
mv -f ../release.tgz ../product/
启动

$ egg-scripts start --port=7001 --daemon --title=egg-server-showcase
如上示例,支持以下参数:
–port=7001 端口号,默认会读取环境变量 process.env.PORT,如未传递将使用框架内置端口 7001。
–daemon 是否允许在后台模式,无需 nohup。若使用 Docker 建议直接前台运行。
–env=prod 框架运行环境,默认会读取环境变量 process.env.EGG_SERVER_ENV, 如未传递将使用框架内置环境 prod。
–workers=2 框架 worker 线程数,默认会创建和 CPU 核数相当的 app worker 数,可以充分的利用 CPU 资源。
–title=egg-server-showcase 用于方便 ps 进程时 grep 用,默认为 egg-server-${appname}。
–framework=yadan 如果应用使用了自定义框架,可以配置 package.json 的 egg.framework 或指定该参数。
–ignore-stderr 忽略启动期的报错。
–https.key 指定 HTTPS 所需密钥文件的完整路径。
–https.cert 指定 HTTPS 所需证书文件的完整路径。
所有 egg-cluster 的 Options 都支持透传,如 --port 等。

停止

$ egg-scripts stop [--title=egg-server]

–title=egg-server 用于杀死指定的 egg 应用,未传递则会终止所有的 Egg 应用。

服务器安装了bt面板,使用pm2管理

在egg项目的根目录定义启动文件:文件名为server.js

const egg = require('egg');
const workers = Number(process.argv[2] || require('os').cpus().length);
egg.startCluster({
workers,
baseDir: __dirname,
});
  1. 命令
    安装:npm install pm2 -g
    更新:pm2 update
    启动(注意当前应为项目根目录):pm2 start server.js --name test

  2. bt面板控制

    1. 安装pm2
      阿里云服务器(BT面板)Vue+Node(Egg)部署流程_第1张图片

    2. 设置pm2管理器

      1. 首先选择node版本,选择自己使用的版本,
        阿里云服务器(BT面板)Vue+Node(Egg)部署流程_第2张图片

      2. 其次才是 添加新项目:
        选择egg项目根目录,输入启动文件名称server.js ,输入项目名称(自己命名),点击添加

        等一会就会启动服务,并且显示端口和状态。
        阿里云服务器(BT面板)Vue+Node(Egg)部署流程_第3张图片

注意项

如果遇到问题请检查这三点,具体报错信息和清空不贴了。

  1. 不要忘记安装 egg-scripts ,npm i egg-scripts --save
  2. 阿里云服务器,将 config.{env}.js 的 hostname 改为服务器内部网址
    可以去阿里云控制台,找到服务器,在列表中有内外网ip
  3. 可以使用bt进行域名映射,即网址访问

微信公众号: 耐撕程序员
有资源
有想法
有技术贴
随手扫一扫
不吃亏不上当
大家一起天天向上
欢迎扫码关注相互交流

阿里云服务器(BT面板)Vue+Node(Egg)部署流程_第4张图片

你可能感兴趣的:(nodejs,学习笔记)