【问题标题】:How to structure a node cli application如何构建节点 cli 应用程序
【发布时间】:2018-06-27 05:59:41
【问题描述】:
我想编写一个节点 cli 应用程序,我想知道我应该如何构建应用程序。我对节点相当陌生,并且对构建此类应用程序时使用的所有设计模式感到困惑。
我希望能够从命令行调用应用程序,但也将其用作节点模块以进行更好的测试。
目前我有一个文件,其中包含许多直接从 cli 调用的函数,但我觉得这很难维护。
有没有关于如何做这些事情的好文章?我看了rimraf,但它让我更加困惑。感谢您的宝贵时间
【问题讨论】:
-
我创建了一些简单的cli,你可以看看他们的结构here
标签:
javascript
node.js
command-line-interface
【解决方案1】:
我不知道是否有“正确”的方法可以做到这一点,但我可以告诉你我是如何处理与你类似的问题的。我想创建一个 CLI 和一个 Visual Studio 代码插件,这样人们就可以使用 VSC 和 CLI 的功能(对于那些不使用 VSC 的人),所以我采取的方法是将所有逻辑在它自己的包中,然后创建另外两个包,其中包括第一个包,一个用于 CLI,一个 VSC 插件需要“逻辑”包。
在 CLI 包中,您只会有与命令处理严格相关的代码,然后真正的内容发生在逻辑包中。在我的例子中,VSC 插件包的代码行数很少,只有配置和对所需函数的调用。
然后关于代码结构的一些建议:
- 只公开绝对必要的内容
- 根据通用功能将您的代码隔离在不同的文件/类中(并转到第 1 点)
- 测试您的代码
- 检查您的代码
但这些都是常识和独立于语言的建议。