在平常開發中,會常常有這樣的場景,如生產環境和測試環境的數據庫地址不一樣。這時候就須要構建程序可以根據不一樣場景作不一樣的變量配置。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
安裝minimistjson
install --save-dev minimist數組
在package.json中添加自定義的參數app
"scripts": { "dev": "node app.js --param1 param1 --param2 param1", "test": "NODE_ENV=test echo \"Error: no test specified\" && exit 1" },
在程序加載時獲取參數
執行 cnpm run devkoa
var minimist = require('minimist'); var args = minimist(process.argv.slice(2)); console.log(args.param1); console.log(args.param2);