Javascript Yargs node js cli实现未设置环境变量
我不明白yargs是如何解析命令行参数的。 当用户传递'-v'或'--verbose'时,我想使用常规选项将我的应用程序的调试级别设置为'debug'。 我在Javascript Yargs node js cli实现未设置环境变量,javascript,node.js,command-line-interface,yargs,Javascript,Node.js,Command Line Interface,Yargs,我不明白yargs是如何解析命令行参数的。 当用户传递'-v'或'--verbose'时,我想使用常规选项将我的应用程序的调试级别设置为'debug'。 我在logger.js中实现了一个记录器实例,如下所示: const winston = require('winston'); let logger; const format = winston.format.cli(); const logLevel = process.env.YOUTUBECLI_DEBUG || 'info'; l
logger.js
中实现了一个记录器实例,如下所示:
const winston = require('winston');
let logger;
const format = winston.format.cli();
const logLevel = process.env.YOUTUBECLI_DEBUG || 'info';
logger = winston.createLogger({
level: logLevel,
format: format,
silent: true,
});
logger.debug('Debug mode activated');
module.exports = logger;
youtube.js
需要logger.js
#!/usr/bin/env node
// NPM modules
const yargs = require('yargs');
// Custom modules
const init = require('./lib/init');
const youtube = require('./lib/youtube');
// Basics
yargs.version('1.0.0');
yargs.scriptName('youtube-cli');
yargs.usage('Usage: $0 <cmd> [options]');
// Download the audio stream
yargs.command({
command: 'download',
describe: 'Download the audio stream from a YouTube URL',
builder: {
url: {
describe: 'Youtube URL',
demandOption: true,
type: 'string',
},
},
handler: (argv) => {
const url = argv.url.replace(/\\/g, '');
youtube.main(url);
},
});
// Enable verbose mode
yargs.option('verbose', {
alias: 'v',
type: 'boolean',
description: 'Run with verbose logging',
}).argv;
// Handle debug mode
process.env.YOUTUBECLI_DEBUG =
yargs.argv.verbose || yargs.argv.v ? 'debug' : 'info';
// Require one command
yargs.demandCommand(1);
// Parse all commands
yargs.parse();
#/usr/bin/env节点
//NPM模块
常数码=要求(“码”);
//自定义模块
const init=需要('./lib/init');
const youtube=require('./lib/youtube');
//基础知识
yargs.version('1.0.0');
yargs.scriptName('youtube-cli');
用法('用法:$0[选项]);
//下载音频流
雅格斯指挥部({
命令:“下载”,
描述:“从YouTube URL下载音频流”,
建造商:{
网址:{
描述:“Youtube URL”,
需求描述:是的,
键入:“字符串”,
},
},
处理程序:(argv)=>{
constURL=argv.url.replace(/\\\/g',);
main(url);
},
});
//启用详细模式
yargs.选项(“详细”{
别名:“v”,
类型:'布尔',
描述:“使用详细日志记录运行”,
}).argv;
//句柄调试模式
process.env.YOUTUBECLI\u调试=
| |是的,是吗?“调试':'信息';
//需要一个命令
码需求指令(1);
//解析所有命令
parse();
但是,环境变量从未设置,并且始终为“info”,即调试级别未增加