问题标签 [oclif]

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.

0 投票
2 回答
12814 浏览

node.js - 即使 tsc 成功解决它,也找不到 Typescript 模块

我有一个用 Typescript 编写的 Node.js 项目,该项目预计将作为 CLI 运行,并且无法node_modules使用绝对路径导入位于目录之外的模块(相对路径工作正常)。值得一提的是,我正在使用oclif 框架来构建我的 CLI。

我的项目组织如下:

my-module.ts我有:

index.ts脚本包含以下内容:

当我尝试使用 ts-node 执行我的应用程序时,我得到

我无法理解的是,当我运行tsc --traceResolution该模块时正确解析:

我的tsconfig.json文件包含:

如果有人能对这个问题有所了解,或者至少建议在哪里寻求进一步的帮助,我将不胜感激。如果需要更多详细信息,请告诉我。

提前致谢!

0 投票
1 回答
251 浏览

typescript - 如何在 oclif-cli 中的表中显示 db 检索到的数据,如 mysql-client-cli?

我正在使用 OCLIF 框架和 TypeScript 开发 CLI 工具,我有从数据库返回所有值的命令,在检索之前一切正常,我希望检索到的数据像终端中的表格一样显示。

在此处输入图像描述

是否有任何插件或其他有助于将 CLI 设计为这样显示的东西?

0 投票
1 回答
35 浏览

oclif - 如何强制 --help 命令在 Oclif 的 run 方法中执行

我的要求很简单。当用户在没有足够参数的情况下执行特定命令时,我想执行帮助命令。

async run() { if (!args.name) { this.log( please provide a project name.) // help ()
} }

0 投票
1 回答
1261 浏览

node.js - Oclif 提示测试

我正在尝试为包含简单提示的 Oclif 钩子编写单元测试。我想测试钩子的输出,给定对提示的“Y”或“N”响应。

我正在使用此处描述的“fancy-test”和“@oclif/test”测试框架: https ://oclif.io/docs/testing

我已经尝试对提示进行存根并模拟标准输入,但两者都不起作用 - 存根函数不可用或输出为空字符串。

这是一次测试的尝试(不起作用,因为 'cli.prompt 不是函数'):

我突然想到我可能没有正确地构建我的测试。如果有人能指出我正确的方向或提供一些关于如何测试上述钩子的伪/示例代码,那将是惊人的 - 谢谢!

0 投票
1 回答
543 浏览

node.js - 如何在 oclif 中使用 cli-ux 提示符测试用户输入?

我正在使用oclif创建一个 cli 应用程序。用户执行命令,cli 询问他是否要继续(是/否回答)。

我试图测试使用cli-ux prompt的命令。我想模拟用户交互以输入“是”字。

我怎样才能做到这一点?我试过这个:

0 投票
1 回答
354 浏览

node.js - 如何使用 oclif 创建 Git 风格的子命令?

我正在使用 Heroku 的 CLI 框架 oclif 编写 CLI。它工作得很好,但我想要类似 Git 的子命令,比如:

我已经浏览了文档,但找不到与命令结构、布局、层次结构等相关的任何信息。我​​可以编写mycommand为普通命令并打开 argv 的第一个参数,但我的子命令接受不同的标志,所以当有人跑步时,我失去了 oclif 报告一些帮助的能力mycli help mycommand

所以,我的问题是:使用 oclif 创建子命令的最佳方法是什么?

0 投票
0 回答
442 浏览

node.js - Oclif cli 作为 tarball 发布:如何将命令自动链接到 bashRc 而无需编写“npm link”?

我正在尝试发布一个使用 oclif 作为 tarball 构建的 cli。在本地环境中,我需要编写 npm link 以将代码与命令链接。但在产品中,我不希望用户在下载 zip 后打开终端并编写 npm 链接。

似乎 npm 无法运行预安装脚本,除非调用“npm install”。编写一个 shell 脚本听起来是个不错的解决方案,但是用户必须再次手动执行这个脚本。我想知道在用户下载 zip 后是否真的没有办法让这个“npm 链接”自动执行。我确定 Oclif 有它的东西,但我在文档https://oclif.io/docs/releasing中找不到它。

谢谢你的帮助。这是项目的package.json

0 投票
2 回答
306 浏览

typescript - 安装本地插件

我使用npx oclif multi mynewcli. 我正在尝试安装使用此处npx oclif plugin mynewplugin引用创建的默认插件。我不知道看到任何有关如何实际执行此操作的文档。是否有我缺少的文档?CLI 如何知道在哪里寻找包含的插件?

0 投票
0 回答
347 浏览

javascript - 如何在 nx 中使用/构建 oclif(CLI 节点应用程序)?

我正在玩一个从 Jira 获取数据、生成指标并将其提供给 React 前端(https://github.com/fgerthoffert/jira-agile-velocity)的小应用程序。

它目前包含:

现在,它有机地增长到我需要重构和对代码库进行整体清理的地步。

我查看了 monorepo 框架的 NX(https://nx.dev/web),它非常有趣,因为它允许在应用程序之间共享代码(特别是类型定义和小型实用程序函数)。

我能够设置 API 和 UI,它可以正常构建和运行,我可以毫无问题地构建 docker 映像。

我面临的挑战是围绕构建 CLI 应用程序。

我怀疑大部分自定义应该发生在workspace.json的架构师/构建部分,但我在理解如何配置它时遇到了一些麻烦,特别是如何使用打字稿构建器(tsc -b)。

我将不胜感激有关如何调用的任何指示tsc -b

CLI 代码库(不含 NX)位于:https ://github.com/Fgerthoffert/jira-agile-velocity/tree/master/cli

NX 部分仍然是标准的,我使用以下方法生成了 CLI 文件夹:

非常感谢。

0 投票
1 回答
374 浏览

typescript - 在 Oclif CLI 中包含以空格分隔的参数

我正在尝试构建一个使用 oclif 使用 Rest API 的 CLI。

我的代码如下:

我正在尝试输入如下命令:

但是 oclif 和 typescript 不承认英国是一个参数,而是两个“United”和“Kingdom”。我该如何解决这个问题?