中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解基于Vue+Koa的pm2配置

發布時間:2020-10-20 15:16:34 來源:腳本之家 閱讀:196 作者:Black-Hole''s Blog 欄目:web開發

目前使用的技術棧是:前端Vue、后端Koa、數據庫Mongodb

然而每當起服務的時候,都要 npm start 、 node ./server/app.js ,還要同時保持這兩個窗口一直是開著的,很是麻煩。

而且因為我使用的是koa,也沒有使用狼叔寫的koa腳手架。是自己基于廖雪峰老師的 Koa框架 改的一個小型mvc。導致沒有熱更新。

為了簡化這種沒必要的操作及增加熱更新,開始想怎么進行優化。于是選擇了 pm2

配置pm2

先安裝pm2: npm i pm2 、 npm i pm2 -g

因為是開源項目,為了讓代碼能再別人的電腦上跑起來,需要讓pm2存在項目里。然后在全局安裝,方便后期調試

再項目的根目錄里創建logs目錄

在當前的目錄創建一個pm2.json的文件,內容如下:

{
 "apps": [{
  "name": "koler-server",
  "script": "./app.js",
  "error_file"   : "../logs/server-err.log",
  "out_file"    : "../logs/server-out.log",
  "merge_logs"   : true,
  "log_date_format" : "YYYY-MM-DD HH:mm Z",
  "cwd": "./server",
  "watch": [
   "app.js",
   "controllers"
  ],
  "watch_options": {
   "followSymlinks": false
  }
 },{
  "name": "koler-app",
  "script": "./build/dev-server.js",
  "error_file"   : "./logs/app-err.log",
  "out_file"    : "./logs/app-out.log",
  "merge_logs"   : true,
  "log_date_format" : "YYYY-MM-DD HH:mm Z",
  "cwd": "./",
  "ignore_watch" : [
   "node_modules"
  ],
  "watch_options": {
   "followSymlinks": false
  }
 }]
}

這里同時啟動兩個項目。

koler-server 是koa, koler-app 是前端vue。

我嘗試了一下把

"error_file"   : "./logs/app-err.log",
"out_file"    : "./logs/app-out.log",
"merge_logs"   : true,
"log_date_format" : "YYYY-MM-DD HH:mm Z",

代碼提升到json的根部,但是發現不起作用。看來pm2不支持這種。所以只能在每個服務里寫了。

配置package.json

替換之前的 script 字段下的 dev ,然后再增加 stop 字段,替換后如下:

"scripts": {
 "dev": "pm2 start pm2.json && pm2 logs",
 "start": "npm run dev",
 "stop": "pm2 stop koler-app koler-server && pm2 delete koler-app koler-server",
 "build": "node build/build.js",
 "lint": "eslint --ext .js,.vue src"
},

pm2 start pm2.json && pm2 logs 是基于pm2.json文件配置啟動,后面的 pm2 logs 是為了同時跟蹤vue和koa的反饋日志。

輸入 npm start 后。終端如下:

詳解基于Vue+Koa的pm2配置 

我這里不知道為什么。每次 npm start 都會爆出來如下的錯誤:

1|koler-ap | 2017-10-23 19:45 +08:00:
1|koler-ap | ┌────────────────────────────────────────────────────────────┐
1|koler-ap | │         npm update check failed          │
1|koler-ap | │      Try running with sudo or get access       │
1|koler-ap | │      to the local update config store via      │
1|koler-ap | │ sudo chown -R $USER:$(id -gn $USER) C:\Users\158bl\.config │
1|koler-ap | └────────────────────────────────────────────────────────────┘

單獨啟動是沒有任何問題的,但是項目還是能照常跑起來。可能是nodejs或者pm2的bug吧(因為不知道是哪里的bug,就不去github上提issue了)

啟動后,你的屏幕會出現一個cmd窗口,不用關,過一會它會自行關閉的。每次修改代碼觸發pm2配置文件里 watch 規則時,就會自動彈出一個cmd窗口,也是過一會關閉。

因為其他項目使用者可能會在電腦上跑多個pm2實例,所以在 stop 字段里,我跟上了名字。防止出現把所有的實例全部暫定刪除了。

測試

現在我們更改代碼發現沒有任何問題,pm2會幫助我們自動進行熱更新。現在我們故意改錯一段vue的代碼試試:

詳解基于Vue+Koa的pm2配置

詳解基于Vue+Koa的pm2配置 

可以發現已經OK了。

這里說明一下為什么在pm2.json配置文件里的第二個實例 koler-app 沒有watch,因為vue在開發環境下使用的是wenpack的watch,所以不需要加。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

全州县| 蓬安县| 阿克陶县| 枝江市| 永丰县| 日照市| 治多县| 祁门县| 鹿泉市| 年辖:市辖区| 额济纳旗| 嘉荫县| 洪湖市| 宁强县| 二连浩特市| 灵台县| 扎鲁特旗| 洛南县| 阿勒泰市| 肇州县| 苏州市| 资兴市| 北海市| 雷波县| 来宾市| 普宁市| 铅山县| 平度市| 丰镇市| 南江县| 泸西县| 云浮市| 如皋市| 伊通| 湘阴县| 汶上县| 察哈| 莆田市| 遵化市| 平原县| 富蕴县|