1、得到process.argv 得到参数
2、修改hahaya1项目的index.js
#!/usr/bin/env nodemodule.exports = { sum(a, b) { return a + b + 1 }, init({ _option, param }) { console.log('执行命令', _option, param) }}
3、引入init命令,并执行
#!/usr/bin/env nodeconst argv = require('process').argvconsole.log(argv)const lib = require('hahaya1')console.log('sum', lib.sum(2, 3))console.log('t2eswwt11')const command = argv[2]if (command) { if (lib[command]) { lib[command]() } else { console.log('command无效') }} else { console.log('请输入command')}
4、处理参数
...//解析参数const options = argv.splice(3)console.log(options)const [option, param] = optionsconsole.log(option, param)const _option = option.replace(/--/g, '')const command = argv[2]if (command) { if (lib[command]) { lib[command]({ _option, param }) } else { console.log('command无效') }} else { console.log('请输入command')}
5、执行版本
#!/usr/bin/env nodeconst argv = require('process').argvconsole.log(argv)const lib = require('hahaya1')console.log('sum', lib.sum(2, 3))console.log('t2eswwt11')const command = argv[2]//解析参数const options = argv.splice(3)if (options.length) { console.log(options) const [option, param] = options console.log(option, param) const _option = option.replace(/--/g, '') if (command) { if (lib[command]) { lib[command]({ _option, param }) } else { console.log('command无效') } } else { console.log('请输入command') }}if (command.startsWith('--') || command.startsWith('-')) { const gloabalOption = command.replace(/--|-/g, '') console.log(gloabalOption) if (gloabalOption === 'version' || gloabalOption === 'v') { console.log('1.0.0') }}
