项目是Vue+Egg,服务器是阿里云的linux,安装了BT面
这个流程适合,发布不频繁,个人项目,小型项目。
下一步我会升级为,使用git,或者git+jekins的方式,实现每次merge自动发布。
项目位置,D:\personalProject\vuepro\coderIndex
node: 10.11.0
vue:2.9.3
elementUI:2.12.0
webpack-dev-server:2.11.5
npm run dev
知识点:
zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件
-r表示递归压缩子目录下所有文件.
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;
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 应用。
在egg项目的根目录定义启动文件:文件名为server.js
const egg = require('egg');
const workers = Number(process.argv[2] || require('os').cpus().length);
egg.startCluster({
workers,
baseDir: __dirname,
});
命令
安装:npm install pm2 -g
更新:pm2 update
启动(注意当前应为项目根目录):pm2 start server.js --name test
bt面板控制
如果遇到问题请检查这三点,具体报错信息和清空不贴了。