node項目啓動命令參數獲取

在平常開發中,會常常有這樣的場景,如生產環境和測試環境的數據庫地址不一樣。這時候就須要構建程序可以根據不一樣場景作不一樣的變量配置。node

{
    "name": "koahello",
    "version": "0.0.1",
    "description": "koa hello world",
    "main": "index.js",
    "scripts": {
        "dev": "node app.js",
        "test": "NODE_ENV=test echo \"Error: no test specified\" && exit 1"
    },
    "author": "hy",
    "license": "ISC",
    "devDependencies": {
        "koa": "^2.2.0",
        "minimist": "^1.2.0"
    }
}

在如上的node項目中,經過執行cnpm run dev時啓動項目,如何在node程序啓動時添加自定義的參數並獲取這些參數?下面介紹兩種方法:
方法一:
node app.js arg1 arg2 arg3,獲取 app.js 後的三個參數,能夠使用 process.argv 獲取。git

//process是一個全局對象,argv返回的是一組包含命令行參數的數組
var args = process.argv.splice(2)
console.log(args);github

輸出:數據庫

[ 'arg1', 'arg2', 'arg3' ]

方法二:
能夠經過一個工具minimist實現。npm

  1. 安裝minimistjson

  2. install --save-dev minimist數組

  3. 在package.json中添加自定義的參數app

"scripts": {
    "dev": "node app.js --param1 param1 --param2 param1",
    "test": "NODE_ENV=test echo \"Error: no test specified\" && exit 1"
},
  1. 在程序加載時獲取參數
    執行 cnpm run devkoa

var minimist = require('minimist');
var args = minimist(process.argv.slice(2));
console.log(args.param1);
console.log(args.param2);
相關文章
相關標籤/搜索