我正在用 NodeJS 編寫一個命令行程序,我目前的想法是我希望將參數解析和邏輯放入index.js其中,然后將實際代碼放入單獨的文件中的函數中。我遇到的問題是如何編寫參數依賴和沖突。出于某種原因cmd,從不包含論點。它僅適用于--help.我究竟做錯了什么?如何在 switch 內部檢查其他參數的存在或不存在?'use strict'const minimist = require('minimist')module.exports = () => { const args = minimist(process.argv.slice(2)) let cmd = args._[0] || 'help' if (args.version || args.v) { console.log("Version 0.1") exit } if (args.help || args.h) { const help =`Usage: ddparser [OPTION]... [FILE]...Parses DD toml files and updates a webpage accordingly. --help Prints this help page --validate Validates input file [requires --input] --k1-dry-run Print K1 changes without doing it [requires --input] [conflicts with --k1-commit] --k1-commit Commit k1 changes to website [requires --k1-token] [conflicts with --k1-dry-run] --k1-token K1 token [requires --k1-commit] --input DD toml file to parse [required]` console.log(help) } // all args below needs content from the toml file to work // should exit with error if config.toml isn't found switch (cmd) { case 'validate': // error if --input is not specified // error if any other argument is given // read config.toml // read --input toml file break case 'k1-dry-run': // error if --input is not specified // error if any other argument is given // run --validate first and error if it fails // read config.toml // read --input toml file break case 'k1-commit': // error if --input is not specified // error if --k1-token is not specified // run --validate first and error if it fails // read config.toml // read --input toml file break
如何編寫命令行參數依賴項?
陪伴而非守候
2022-07-08 18:24:17