问题标签 [yargs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 文本文件中的内容将是文件名,如何获取并与新文件名进行比较(是否匹配)
在这里,我将文件名放入 filename.txt,但我不知道如何与 filename.txt 中的现有文件进行比较
文本文件中的内容将是文件名,我的问题是如何获取并与新文件名进行比较(它们是否匹配)
typescript - 在 Typescript 中使用 yargs
我不明白当我抽象options
到一个变量(甚至从另一个文件导入)时,Typescript 抱怨:
node.js - 如何使用 yargs 为命令的位置参数提供别名
我正在使用 yargs 使用 node.js 构建命令行应用程序。
我的命令之一如下:
这工作正常,我可以运行一个命令,如
如何为我的可选或位置参数提供别名,以便我可以执行以下操作:
甚至
另外,我什么时候可以使用 double - 什么时候应该使用 single - 。我已经阅读了这里的文档https://github.com/yargs/yargs/blob/master/docs/advanced.md但他们没有详细介绍如何在使用模块化命令目录结构时执行此操作。
请帮忙
javascript - 如何使用 Yargs 实现多个子命令?
我一直在尝试,但就是无法消化 Yargs 的文档。
我需要创建一组命令/子命令:
或者
或者
我想要别名:
g
for generate
,
r
for routed-module
,
s
for stateful-ui
。
自动完成会很好。
这是我尝试过的,不知道从哪里开始:
谢谢!
(没有必要用打字稿做这个。我主要想了解如何使用库的api。)
node.js - 从 Windows PowerShell 运行 node.js 脚本时,未正确解释参数转义
给定以下脚本:
如果我像这样从 Windows PowerShell 调用脚本: 我会得到我期望node .\alphabetizer.js -d 'l:\my folder\Files - Some Files In Here\' --whatIf
的输出。它适用于不需要转义的文件夹名称,但它似乎对转义感到困惑。l:\my folder\Files - Some Files In Here\" --whatIf
l:\my folder\Files - Some Files In Here\
如果我检查process.argv
,我可以看到相同的转义问题。
我注意到,如果我删除尾部斜杠,它将起作用。但是,这仍然表明节点脚本没有正确处理输入,因为单引号引起的字符串不应该这样做。
有没有办法使这项工作?
javascript - 任何模块都支持 npx,如 argv 解析器?
任何模块都支持npx
像 argv 解析器?
我写了一个模块ynpx
https://github.com/blueloves/ws-ypx/tree/master/packages/ypx
但我找不到像 npx 一样让输入 cli argv 解析的安全方法
我期望的是
所有 argv 之前yyy
的解析都像通常的 argv 解析器一样
但之后yyy
不会解析并保留为源输入顺序
typescript - 如何在打字稿中正确地对 yargs 进行单元测试
我需要解释两点 - 如何在不使用已弃用的 .reset() 方法的情况下重置 yargs;(.global() 方法,但是如何??) - 如何将命令行传递给用户输入的 yargs
给定以下测试:
如果我尝试将命令行传递给 yargs:
我看到以下错误“TS2349:此表达式不可调用”:
/Users/Plastikfan/dev/github/js/aergia-cli-ts/tests/yargs/yargs-builder.impl.spec.ts ./tests/yargs/yargs-builder.impl.spec.ts [tsl] 中的错误/Users/Plastikfan/dev/github/js/aergia-cli-ts/tests/yargs/yargs-builder.impl.spec.ts(89,5) TS2349 中的错误:此表达式不可调用。输入'{默认值:Argv<{}>; 别名(shortName: K1, longName: K2 | readonly K2[]): Argv<{ [key in K2]: {}[K1]; }>; 别名(短名称:K2,长名称:K1 | 只读 K1[]):Argv<...>; alias(shortName: string | readonly string[], longName: string | readonly st...' 没有调用签名。
我一直在扫描其他 yargs 单元测试,我在 yargs 中发现了这些测试:yargs completion tests
尤其是:
即yargs被调用(),但这是我在打字稿测试中尝试时得到错误的地方。请注意,引用的示例是一个 javascript 测试,它还使用了 beforeEach 中已弃用的 .reset() 函数。
我最初在 tsconfig 中有“esModuleInterop”:true,但将其设置为 false 没有任何区别。
javascript - Yargs : 在失败函数中访问已处理的 argv
我将 yargs 用于复杂的命令行(通过 commandDir 使用子命令)。每次给定命令失败时,我想使用 .fail(fn) 发送电子邮件。.fail(fn) 被正确触发,但我希望能够访问赋予命令的参数。.fail(fn) 只允许我访问 msg、err、yargs。
是否可以访问失败函数中的 argv.senderr 值?谢谢 !
node.js - TypeError: notesExist.push 不是函数?
我只是 nodeJs 的新手,我需要你的帮助
我的utile.js 文件:
我的 intro.js 文件
我的 data.json 文件:
但是当我通过以下方式运行 intro.js 文件时:node intro.js add --name="booktitle" --age="dsds" --birthday="1995"
我得到了很好的错误 [我花了 3 个小时,但我没有找到任何解决该错误的方法]
错误:
ps:我没有更改我的 yargs.js 文件中的任何内容。请问我做错了什么?提前致谢 !
yargs - 将带空格的字符串传递给节点 cli-parser
https://runkit.com/embed/57837xcuv5v0
实际输出:
Object {_: ["executable", "b\""], param: "\"a"}
预期输出:
Object {_: ["executable"], param: "a b"}
yargs
使用and时我也看到了相同的结果commander
。
这很奇怪,因为jest
正在使用yargs
并开玩笑接受以下命令:jest -t "test name with spaces"