Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Yargs node js cli实现未设置环境变量_Javascript_Node.js_Command Line Interface_Yargs - Fatal编程技术网

Javascript Yargs node js cli实现未设置环境变量

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

我不明白yargs是如何解析命令行参数的。 当用户传递'-v'或'--verbose'时,我想使用常规选项将我的应用程序的调试级别设置为'debug'。 我在
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”,即调试级别未增加