Javascript commander.js简单用例:一个文件参数
我看到大多数人在处理命令行解析时使用Javascript commander.js简单用例:一个文件参数,javascript,node.js,typescript,node-commander,Javascript,Node.js,Typescript,Node Commander,我看到大多数人在处理命令行解析时使用commandernpm包。我也想使用它,因为它似乎有相当高级的功能(例如命令、帮助、选项标志等) 然而,对于我的程序的第一个版本,我不需要这些高级功能,我只需要commander解析参数,并找到一个提供的文件名(强制参数) 我试过: import commander = require("commander"); const cli = commander .version("1.0.0") .description("Foo bar
commander
npm包。我也想使用它,因为它似乎有相当高级的功能(例如命令、帮助、选项标志等)
然而,对于我的程序的第一个版本,我不需要这些高级功能,我只需要commander解析参数,并找到一个提供的文件名(强制参数)
我试过:
import commander = require("commander");
const cli =
commander
.version("1.0.0")
.description("Foo bar baz")
.usage('[options] <file>')
.arguments('<file>')
.action(function(file) {
if (file == null) console.log("no file")
else console.log("file was " + file);
})
.parse(process.argv);
import commander=require(“commander”);
常量cli=
指挥官
.版本(“1.0.0”)
.说明(“Foo-bar-baz”)
.用法(“[选项]”)
.参数(“”)
.action(函数(文件){
if(file==null)console.log(“无文件”)
else console.log(“文件是”+文件);
})
.parse(process.argv);
然而,在这种情况下:
- 如果我不传递任何参数,则不会打印任何内容。我是否正确使用了
函数,还是我的空检查错误?理想情况下,它应该打印我在本例中传递的action()
用法
字符串,并以exitCode结束=0
- 我如何检测用户是否发送了太多文件名(太多参数)并给了她一个错误
const cli = commander
.version('0.1.0')
.usage('[options] <file>')
.arguments('<file>')
.action(function(file) {
fileValue = file;
})
.parse(process.argv);
if (typeof fileValue === 'undefined') {
console.error('no file given!');
process.exit(1);
}
console.log('file was ' + fileValue);
const cli=commander
.版本('0.1.0')
.用法(“[选项]”)
.参数(“”)
.action(函数(文件){
fileValue=文件;
})
.parse(process.argv);
如果(文件值的类型=='undefined'){
console.error('没有给定文件!');
过程。退出(1);
}
log('file was'+fileValue);
您可以通过if(process.argv.slice(2+1).length>0)控制台删除第一个(node命令)、第二个(js名称)和第三个(文件名)来检查额外参数。错误('argv超出需要!')代码>