0

我将 yargs 与命令模块一起使用,即每个命令的单独文件,每个命令文件为自己的命令定义exports.command, 。exports.descexports.handler

对于我 60% 的命令,默认情况下它的工作方式很好。但是另外 40% 我想首先使用异步的 TypeORM 连接到数据库,然后仅在建立连接后,执行exports.handler包装在 .then() 中,这样它就不会在数据库连接之前执行.

问题是,在我的全局入口文件中,一旦定义了所有全局 yargs 选项,并且我执行 .argv for yargs 来解析命令(确定它是 db 还是非 db 命令),它也会exports.handler立即执行,所以我没有机会先连接到数据库,然后使用 .then 来包装exports.handler命令代码(对于需要它的 40% 的命令)。

我想避免只为 db 连接添加异步代码到这 40% 的命令文件中的每一个。并且还要避免为所有 100% 的命令连接到数据库,因为其中 60% 的命令不需要它。

我正要进行重大更改,不再使用 yargs 的命令模块……但必须有更简单的方法来做到这一点?

有没有办法告诉 yargs 我想解析命令但还没有执行 exports.handler

如果我能弄清楚这一点,那么我可以简单地将需要包装在 .then() 中的命令和不需要的命令分开。

4

0 回答 0