在平常开发中,会常常有这样的场景,如生产环境和测试环境的数据库地址不一样。这时候就须要构建程序可以根据不一样场景作不一样的变量配置。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);