首頁>技術>

我們在開發Node服務時每當更改檔案內容時都需要需重啟一下服務功能才能生效,如果每次程式碼修改都要重複這樣的操作勢必會影響開發效率。所以我們希望每當檔案被修改之後服務可以自行重啟,不需要我們再去手動執行(把更多的精力都放到業務邏輯實現上)。而Nodemon就可以幫助我們實現這一功能,它可以監控你的node.js原始碼改變並自動重啟你的伺服器。

Nodemon安裝

在nodejs應用程式中使用Nodemon包非常簡單,我們只要透過npm就可以快速地安裝該工具包。為了可以直接使用nodemon來代替node啟動應用我們採用全域性安裝,安裝完 nodemon 後就可以用 nodemon 來代替 node 來啟動應用。

npm install -g nodemon   //如果想用nodemon來代替node啟動應用可以全域性安裝+ [email protected] 117 packages from 53 contributors in 17.558s11 packages are looking for funding  run `npm fund` for details
Nodemon使用

Nodemon使用非常的簡單,直接nodemon + app(JavaScript檔案)就可以啟動了。你也可以在啟動的時候新增引數來指定如何啟動,比如以debug模式執行:node bin/app.js --debug。更多功能我們可以透過命令:nodemon -h 或者 nodemon --help來檢視幫助文件,官網給出的幾個nodemon例子。當我們透過nodemon啟動服務後,它會監測專案中的所有檔案。一旦發現檔案有改動,nodemon會自動重啟node服務。

# nodemon -h 或者 nodemon --helpOptions:  --config file ............ alternate nodemon.json config file to use  -e, --ext ................ extensions to look for, ie. js,pug,hbs.  -x, --exec app ........... execute script with "app", ie. -x "python -v".  -w, --watch path ......... watch directory "path" or files. use once for                             each directory or file to watch.  -i, --ignore ............. ignore specific files or directories.  -V, --verbose ............ show detail on what is causing restarts.  -- <your args> ........... to tell nodemon stop slurping arguments.Examples:  $ nodemon server.js  $ nodemon -w ../foo server.js apparg1 apparg2  $ nodemon --exec python app.py  $ nodemon --exec "make build" -e "styl hbs"  $ nodemon app.js -- --config # pass config to app.js
Nodemon配置

Nodemon除了可以透過命令列使用,也可以透過配置檔案來使用。該檔案一般命名為nodemon.json,放在當前專案的根目錄中。在該檔案中我們可以來配置nodemon屬性,然後使用該--config <nodemon.json>選項指定本地配置檔案。

{  "restartable":"rs", //重啟的命令,預設是rs,可以自定義  "ignore":[""],       //忽略的檔案,檔案路徑相對於nodemon.json所在位置  "verbose": true,     //輸出詳細啟動與重啟資訊,false則不輸出執行資訊  "execMap":{          //執行服務的字尾名和對應的執行命令      "js":"node",     //nodemon代替node執行js字尾檔案  },  "events":{           //nodemon執行到某些狀態時的觸發事件    "start":"gulp",    //子程序(即監控的應用)啟動    "crash":"",        //子程序崩潰,不會觸發 exit    "exit":"",         //子程序完全退出,不是非正常的崩潰    "restart":"gulp",  //子程序重啟  },  "ext": "js json",    //監控指定字尾名的檔案,用空格間隔  "watch":[            //監控的資料夾路徑或者檔案路徑    "./src/*"          //檔案路徑相對於nodemon.json所在位置  ],  "env":{              //node執行環境    "NODE_ENV":"env",  //env指開發環境; 執行環境 development; production 是生產環境    "PORT":"8000"      //啟動埠號  },  "legacy-watch":false //開啟Chokidar監控系統,失敗則使用輪詢模式(true)。}
package.json設定

如果你不想配置nodemon.json檔案也可以直接嵌入package.json檔案中,每個專案的根目錄下面都有一個package.json檔案。該檔案定義了專案所需要的各種模組以及專案的配置資訊,也指定了專案所需的執行條件和開發環境。package.json檔案是一個JSON物件,每個成員對應專案的一項設定。package.json詳細配置可以參考文章:Node實戰005:JavaScript包管理工具NPM詳解,下面是nodemon官方提供的package.json設定示例。

{  "name": "nodemon",  "homepage": "http://nodemon.io",  "...": "... other standard package.json values",  "nodemonConfig": {    "ignore": ["test/*", "docs/*"],    "delay": "2500"  }}
總結:

如果你在package.json中設定nodemon的話就不能再配置nodemon.json檔案,否則package.json中的配置會被忽略。最簡單的方法配置package.js 檔案中的 scripts.start選項,指定 "start": "nodemon ./bin/app.js"就可以用npm run start 來執行 nodemon ./bin/app.js。

8
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 「Python基礎」1.7