項目是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
- vue 項目啓動
npm run dev
- 打包 npm run build 生成dist文件
- 壓縮 zip
- 上傳到服務器對應的網站目錄下, 推薦兩個工具Xftp 6,WinSCP,只推薦這兩個工具,需要安裝包可以去公衆號 “耐撕程序員”,私聊發送關鍵字“ftp”即可獲得下載鏈接
- 解壓到當前目錄下 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,
});
-
命令
安裝:npm install pm2 -g
更新:pm2 update
啓動(注意當前應爲項目根目錄):pm2 start server.js --name test -
bt面板控制
-
安裝pm2
-
設置pm2管理器
-
首先選擇node版本,選擇自己使用的版本,
-
其次纔是 添加新項目:
選擇egg項目根目錄,輸入啓動文件名稱server.js ,輸入項目名稱(自己命名),點擊添加等一會就會啓動服務,並且顯示端口和狀態。
-
-
注意項
如果遇到問題請檢查這三點,具體報錯信息和清空不貼了。
- 不要忘記安裝 egg-scripts ,npm i egg-scripts --save
- 阿里雲服務器,將 config.{env}.js 的 hostname 改爲服務器內部網址
可以去阿里雲控制檯,找到服務器,在列表中有內外網ip - 可以使用bt進行域名映射,即網址訪問
微信公衆號: 耐撕程序員
有資源
有想法
有技術貼
隨手掃一掃
不吃虧不上當
大家一起天天向上
歡迎掃碼關注相互交流