option:debug实现debug模式报错

option:debug实现debug模式报错

运行环境描述:

Mac 13.4.1 (c) 

commander v6.2.1

node v15.6.0


问题描述:

tleon --debug一直报错 -> error: unknown option '--debug'


相关截图:

https://img1.sycdn.imooc.com/climg/65a924be092a5b0513941708.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
扬_灵 2024-01-21 15:42:06

同学你好,在测试debug参数的时候需要添加命令,例如: tleon 命令名 --debug

  • 提问者 慕妹3482023 #1

    https://img1.sycdn.imooc.com/climg/65adecba092fca7b14861792.jpg 

    仍然是unknow; 视频中也是 直接输入 --debug命令,依然可以名称option:debug但是我这就是调不出来 , 依稀为完整代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #! /usr/bin/env node
    // commander 创建命令
    // npm i commander --registry=https://registry.npmmirror.com
    const commander = require('commander')
    const pkg = require('../package.json')
     
    // 用法2 创建新的实例
    const program = new commander.Command()
     
    // 使用command注册命令
    // 第一种方式通过program.command
    const clone = program.command('clone <source> [description]')
    clone
    .description('clone a repository'// 对命令的描述
    .option('-f, --force''是否强制克隆'// 对clone添加option
    .action((source, description, cmdObj) => {
    // 输入命令tleon clone aa -f desc -> do clone aa desc true
    console.log('do clone', source, description, cmdObj.force)
    })
     
    // 高级定制2: 实现debug模式,此种当时轻松实现打印级别verbose,可以弃用iuleon/core/cli/lib.js中的checkInputArgs方法
    program.on('option:debug'function () {
    console.log('1111')
    if (program.debug) {
    console.log('2222')
    process.env.LOG_LEVEL = 'verbose'
    }
    console.log(process.env.LOG_LEVEL)
    })
     
    // 高级定制3: 对未知命令的监听
    program.on('command:*'function (obj) {
    console.log(obj) // tleon aa bb -> [aa, bb]
    console.error('未知的命令:' + obj[0])
    // console.log(program.commands) // 获取所有的命令
    const availableCommands = program.commands.map(cmd => cmd.name())
    console.log(availableCommands)
    console.log('可用命令:'+availableCommands.join(',')) // 可用命令:clone,service
    })
     
    program.parse(process.argv)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    {
    "name""my-test-cli1",
    "version""1.0.3",
    "description""",
    "main""index.js",
    "bin": {
    "tleon""bin/index.js"
    },
    "scripts": {
    "test""echo \"Error: no test specified\" && exit 1",
    "build""webpack",
    "dev""webpack -w"
    },
    "keywords": [],
    "author""",
    "license""ISC",
    "dependencies": {
    "commander""^6.2.1",
    "dedent""^1.5.1",
    "my-test-cli1-lib""file:../my-test-cli1-lib",
    "path-exists""^4.0.0",
    "yargs""^17.7.2"
    },
    "devDependencies": {
    "@babel/core""^7.12.10",
    "@babel/preset-env""^7.12.11",
    "babel-loader""^8.2.2",
    "webpack""^5.10.3",
    "webpack-cli""^4.2.0"
    }
    }


    2024-01-22 12:23:45
  • 提问者 慕妹3482023 #2

    老师 我好像知道什么问题了。 开启监听debug模式

    1. program.on('option:debug', function() {})


    应该还是要注册debug命令吧,如以下debug注册命令

    1. .option('-d, --debug', '是否开启调试模式', false)


    2024-01-22 21:17:37
  • 扬_灵 回复 提问者 慕妹3482023 #3

    同学你好,是的,需要配置debug 参数。

    2024-01-26 21:56:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码