最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解基于Vue+Koa的pm2配置

 更新時間:2017年10月24日 14:12:43   作者:Black-Hole''s Blog  
這篇文章主要介紹了詳解基于Vue+Koa的pm2配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

目前使用的技術棧是:前端Vue、后端Koa、數(shù)據(jù)庫Mongodb。

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

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

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

配置pm2

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

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

再項目的根目錄里創(chuàng)建logs目錄

在當前的目錄創(chuàng)建一個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的根部,但是發(fā)現(xiàn)不起作用??磥韕m2不支持這種。所以只能在每個服務里寫了。

配置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 后。終端如下:

 

我這里不知道為什么。每次 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了)

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

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

測試

現(xiàn)在我們更改代碼發(fā)現(xiàn)沒有任何問題,pm2會幫助我們自動進行熱更新?,F(xiàn)在我們故意改錯一段vue的代碼試試:

 

可以發(fā)現(xiàn)已經(jīng)OK了。

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

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

相關文章

  • Nodejs學習筆記之測試驅動

    Nodejs學習筆記之測試驅動

    本文是本系列文章的第二篇,主要是測試針對于web后端的驅動,在開發(fā)過程中,在開發(fā)完成一段代碼后如果負責任而不是說完全把問題交給測試人員去發(fā)現(xiàn)的話,這個時候通常都會去做一些手動的測試。
    2015-04-04
  • 詳解node登錄接口之密碼錯誤限制次數(shù)(含代碼)

    詳解node登錄接口之密碼錯誤限制次數(shù)(含代碼)

    這篇文章主要介紹了nodejs登錄接口之密碼錯誤限制次數(shù)(含代碼),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • nodeJs實現(xiàn)基于連接池連接mysql的方法示例

    nodeJs實現(xiàn)基于連接池連接mysql的方法示例

    這篇文章主要介紹了nodeJs實現(xiàn)基于連接池連接mysql的方法,結合具體實例形式分析了nodejs連接池操作mysql數(shù)據(jù)庫連接的實現(xiàn)與使用技巧,需要的朋友可以參考下
    2018-02-02
  • NodeJs?Express路由使用流程解析

    NodeJs?Express路由使用流程解析

    路由路徑和請求方法一起定義了請求的端點,它可以是字符串、字符串模式或者正則表達式。后端在獲取路由后,可通過一系列類似中間件的函數(shù)去執(zhí)行事務
    2023-01-01
  • NodeJS遍歷文件生產(chǎn)文件列表功能示例

    NodeJS遍歷文件生產(chǎn)文件列表功能示例

    這篇文章主要介紹了NodeJS遍歷文件生產(chǎn)文件列表功能,結合實例形式分析了nodejs針對文件與目錄的遍歷、判斷及讀寫等相關操作技巧,需要的朋友可以參考下
    2017-01-01
  • Node.js中操作MongoDB的CRUD操作指南

    Node.js中操作MongoDB的CRUD操作指南

    在Node.js中操作MongoDB常見的庫有mongodb原生驅動和mongoose等,本文將使用mongodb官方驅動包來進行示例,在開始之前,請確保已經(jīng)安裝了MongoDB數(shù)據(jù)庫并且在本地啟動了MongoDB服務,需要的朋友可以參考下
    2024-01-01
  • nodejs實現(xiàn)百度輿情接口應用示例

    nodejs實現(xiàn)百度輿情接口應用示例

    這篇文章主要介紹了nodejs實現(xiàn)百度輿情接口應用,結合實例形式分析了node.js調用百度輿情接口的具體使用技巧,需要的朋友可以參考下
    2020-02-02
  • node.js中express中間件body-parser的介紹與用法詳解

    node.js中express中間件body-parser的介紹與用法詳解

    這篇文章主要給大家介紹了關于node.js中express中間件body-parser的相關資料,文章通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • Node.js 使用AngularJS的方法示例

    Node.js 使用AngularJS的方法示例

    這篇文章主要介紹了Node.js 使用AngularJS的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Nodejs在局域網(wǎng)配置https訪問的實現(xiàn)方法

    Nodejs在局域網(wǎng)配置https訪問的實現(xiàn)方法

    做一個局域網(wǎng)WebRTC視頻聊天系統(tǒng),需要用到HTTPS。因此,配置Node.js使其支持HTTPS訪問。這篇文章主要介紹了Nodejs在局域網(wǎng)配置https訪問的實現(xiàn)方法,需要的朋友可以參考下
    2020-10-10

最新評論

通山县| 宜宾县| 琼结县| 衡阳县| 平南县| 北碚区| 九龙城区| 台中市| 沙田区| 怀远县| 乌鲁木齐市| 扶绥县| 无锡市| 漾濞| 临漳县| 原平市| 宜宾市| 西峡县| 宿松县| 河北省| 平利县| 工布江达县| 韶山市| 大方县| 汉阴县| 定襄县| 讷河市| 莫力| 武平县| 霍州市| 富宁县| 武鸣县| 鹰潭市| 霍山县| 宁安市| 冀州市| 萨迦县| 白河县| 丹巴县| 镇宁| 互助|