使用node-config+dotenv 方便的管理配置


dotenv 是遵循12 factor 的一個環境變量管理npm 包,node-config 是一個強大的配置管理npm 包,我們集成起來
可以進行方便的配置管理,以下是一個簡單使用說明

環境准備

  • node 環境
 
yarn init -y
yarn add dotenv config
  • npm script
{
  "dependencies": {
    "config": "^3.3.1",
    "dotenv": "^8.2.0"
  },
  "scripts": {
    "app":"node app.js"
  }
}
  • 項目結構
├── app.js
├── .env
├── config
│   ├── custom-environment-variables.json
│   ├── default.json
│   └── stage.json
├── package.json
└── yarn.lock
  • 簡單說明
    default.json 為默認的配置,stage.json 為stage 的配置,custom-environment-variables.json為環境變量替換的模版
    .env 為基於dotenv 管理的一個env 配置,按照node-config 的約定,環境變量包含了NODE_ENV=stage 會走stage 的配置
    同時如果.env 包含了內容會自動替換,沒有的為空,同時custom-environment-variables.json 的對象會有激活的配置合並
    (當然對於重復的,custom-environment-variables會覆蓋)
    default.json
 
{
    "apps":{
        "users":{
            "name":"dalong",
            "age":333
        }
    }
}

stage.json

{
    "apps":{
        "users":{
            "name":"stage",
            "age":333
        }
    }
}

custom-environment-variables.json

{
    "username": "USERNAME",
    "userpassword":"USERPASSWORD"
}

.env

USERNAME=dalong
USERPASSWORD=dalong
NODE_ENV=stage
  • app.js 代碼
require("dotenv").config()
const config = require("config")
console.log(config)
console.log('NODE_APP_INSTANCE: ' + config.util.getEnv('NODE_ENV'));

運行&&效果

  • 運行
yarn app
  • 效果

 

 

說明

集成node-config 以及dotenv 我們可以實現靈活的系統配置管理,同時方便配置的引用,還是比較方便的

參考資料

https://github.com/lorenwest/node-config/wiki/Configuration-Files 
https://www.npmjs.com/package/dotenv 
https://github.com/rongfengliang/dotenv_node-config-learning


免責聲明!

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



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