nodemon學習(一)簡介、安裝、配置、使用


簡介

nodemon用來監視node.js應用程序中的任何更改並自動重啟服務,非常適合用在開發環境中。以前,我們開發一個node后端服務時,每次更改文件,均需重啟一下,服務才能生效。這使我們的開發效率降低了很多。nodemon的出現,可以隨時監聽文件的變更,自動重啟服務,我們開發時只需關注代碼即可,不再需要手動重啟服務。

【在之前我們啟動應用服務采用的方式都是node app.js,但我們每次修改完node代碼之后都需要重啟服務器即是重新運行命令node app.js才能完成修改。現在使用nodemon替代node在開發環境下啟動服務就不會這么麻煩了。nodemon將監視啟動目錄中的文件,如果有任何文件更改,nodemon將自動重新啟動node應用程序。nodemon不需要對代碼或開發方式進行任何更改。 nodemon只是簡單的包裝你的node應用程序,並監控任何已經改變的文件。nodemon只是node的替換包,只是在運行腳本時將其替換命令行上的node。】

安裝

全局安裝

npm install -g nodemon

啟動應用

nodemon [your node app]

nodemon index.js

使用

1、配置命令行:在package.json的scripts中配置

2、配置nodemon.json文件

3、配置package.json中的nodemonConfig

其中命令行:

"scripts": {
    "start": "nodemon --watch src/ -e js,coffee app.js"
  },

等價於配置文件(nodemon.json)

{ watch: ['src/'], ignore: [], script: 'app.js' options: { extensions: ['js', 'coffee'], exec: 'node' } }

命令行

"scripts": {
    "start": "nodemon"
  },

等價於配置文件(nodemon.json)

{ watch: [], // meaning all subdirectories
 ignore: [], script: 'index.js', options: { extensions: ['js'], exec: 'node' } }

其option 轉化邏輯為

讀命令行參數--->若無,查找本地local配置文件-->若無,查找全局配置文件->若無,嘗試package.json中的main和start-->查找index.js

因此 配置啟動文件,可加快啟動速度,避免深度查找

不想在項目中單獨維護nodemon.json配置文件,可在package.json中設置

package.json設置方法如下:

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

需要注意的是,不能再通過--config 設置文件,且本地不能再保存nodemon.json文件,否則package.json中的配置將被忽略

 

配置

nodemon --help或者nodemon -h 查看一下nodemon可以支持哪些運行參數。

  • --config 可設置指定配置文件

  • --ext 設置監聽文件的后綴擴展名,如想要監聽ts文件的變更,需設置-e ts(文件后綴名)

  • --exec 執行腳本(執行的命令)

  • --watch 設置要監聽的文件路徑

  • --ignore 設置無需監聽的文件路徑

  • --verbose:設置日志輸出模式,true為詳細模式

這些參數也可通過配置nodemon.json文件來使用。

{ "restartable": "rs", "verbose": true, "watch": [ "config/", "router/", "utils/", "views/", "app.ts", "index.ts" ], "ignore": [ "test/*.spec.ts" ], "delay": "1000", "exec": "TS_NODE_PROJECT=tsconfig.server.json node --inspect -r ts-node/register ./app.ts", "ext": "ts ejs yml json" }

nodemon.json各配置項含義。

  • restartable:設置重啟模式(指定重啟的命令,是一個字符串,默認是 'rs')

  • verbose:是否輸出重啟的詳細信息,值是一個布爾值,true 是打印詳細信息,false 是不打印

  • watch:這里指定監視的文件夾或文件,是一個數組,每個參數是目錄或文件)

  • ignore:忽略監視的文件或文件夾,默認忽略的文件有:.gitnode_modulesbower_components.sass-cache

  • delay:設置延遲時間

  • exec:執行的命令

  • ext:指定默認文件的后綴,參數是一個字符串,每個后綴之間用空格分隔,默認支持 js coffee litcoffee

  • script : 指定監視的文件,這個一般是指定項目入口的 js 文件 

  • env : 運行環境 development 是開發環境,production 是生產環境,port 是端口號

修改nodemon命令配置使用--config選項。

"start": "nodemon --config nodemon.json"

總結

  "start": "nodemon --config nodemon.json"

  "start": "nodemon"

  "start": "nodemon --watch src/ -e js,coffee app.js"

例子

首先創建一個文件:

// index.js
 console.log('test');

執行命令:

nodemon index.js

在命令行中會出現下面的信息:

修改文件,終端中輸出的信息如下:

在終端中輸入 rs 會重啟應用:

rs [nodemon] starting `node ./server/index.js` [nodemon] 

結合配置參數使用

nodemon可以作為一個模塊module和子進程child process來使用

// index.js

const nodemon = require('nodemon'); const path = require('path'); const options = { // 配置文件
  script: path.resolve(__dirname, 'src/test.js'), "watch": [ "docs/" ], "ext": "md", "restartable": 're', "verbose": true }; nodemon(options).on('start', function () { // 啟動時的事件
  console.log('App has started'); }).on('quit', function () { // 退出時的事件
  console.log('App has quit'); process.exit(); }).on('restart', function (files) { // 重啟時的事件
  console.log('App restarted due to: ', files); });

執行程序之后的效果如下:

App has started App has started App restarted due to: [ '/Users/negivup/Desktop/test/docs/nodemon.md' ] App has started App restarted due to: [ '/Users/negivup/Desktop/test/docs/nodemon.md' ]

具體使用方法,可參見官網doc

github.com/remy/nodemo…

github.com/remy/nodemo…

參考

nodemon入門介紹

nodemon配置和使用

Node模塊--nodemon

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM