evn.js
#!/usr/bin/env node
// 简单版本, 根据需要自己修改下
function Program() {
let $argvs = []
let _this = this
this.options = function (argv) {
$argvs.push(argv)
return this
}
this.getOptions = function () {
console.log($argvs.toString());
}
this.parse = function (processArgv) {
$argvs.forEach(item => {
let option = item.toLocaleLowerCase()
_this[option] = (function () {
let index = processArgv.indexOf(option)
if (index === 2) {
return true
} else if (index !== -1) {
console.log('您需要的参数应该是执行文件后的第一个参数');
return false
} else {
return false
}
})()
})
}
}
// 使用方法
let program = new Program()
// 定义参数
program.options('prod').options('dev').parse(process.argv)
if (program.prod) {
console.log('--prod');
// todo 执行相关任务
}
if (program.dev) {
console.log('--dev')
// todo 执行相关任务
}
终端下执行:
$ chmod 755 env.js
$ env.js dev prod
--prod
更多有意思的方式可参考阮一峰的博客