我想使带有节点的应用程序具有cli接口,因为它需要在终端中运行。我想将终端分为几个部分,一个部分标识谁在查看应用程序,另一部分包含一些其他随机信息,侧面的菜单可以使用箭头键上下移动,主要日志部分,您可以键入另一个部分,然后按Enter键以发送文本。我已经绘制了一个有关如何制作的小图:(我知道这看起来很糟,它是用mspaint制作的)
我已经通过使用readline
模块使控制台输入部分工作了,但是我什至不知道从哪里开始真正设计终端,如何在某些部分设置文本等等。我到处查看了诸如terminal-kit和clci之类的东西,但是要么它们看起来不像我想要的那样,要么它们的文档/示例很乱。
我宁愿只对节点执行此操作,而不要使用其他语言的另一个应用程序,因为进入控制台部分的所有内容都将来自同一节点应用程序。
答案 0 :(得分:1)
我在https://github.com/chjj/blessed找到了这个有福的图书馆。它基于ncurses库(用C,https://en.wikipedia.org/wiki/Ncurses编写),它允许您在终端的不同区域中创建具有指定高度,宽度等的不同部分。从理论上讲非常有用,您可以按照github页上的建议,将存储库克隆到桌面,查看测试文件夹,然后运行不同的文件,即。 node test/widget-form.js
来查看您可以在终端中创建的不同类型的接口。
它并没有真正为我工作,因为它一直崩溃,但是我看到有很多开放请求请求,人们仍在尝试,所以它可能对某些人有用,尽管我认为某些“小部件”的使用受到限制。我可以推荐的下一个最好的东西是祝福的人或新祝福的人,前者是由Facebook的一些家伙开发的。 Blessed-contrib是较新的,因此您可能会有更多的运气,但是它本质上是为视觉输出而设计的,因此您可以为日志,选择菜单,段落部分等创建一个部分,但无需创建任何内容根据我对文档的阅读情况,您可以在此处输入文字(所需文字的4/5),您可以在这里找到https://github.com/yaronn/blessed-contrib。
我个人认为这是涂料。祝您好运,我正在努力自己更好地理解文档,并且已经深入研究了它,因此如果需要任何帮助,请随时联系。
另一方面,请让我知道您是否发现除了我提到的资源以外的其他内容,这对我非常有帮助,因为现在的替代方法是让我自己使用C和ncurses库,如果没有必要,我会尽量避免它:)
编辑:
我为您和我找到了一些可能将我们引向正确方向的东西。好消息。这是gitter-cli。它使用了我上面blessed提到的库。如果您克隆了gitter-cli的仓库,请按照说明获取令牌并创建一个帐户,然后加入其中一个房间(您可以在gitter.im网站上找到房间的名称,例如“ gitterHQ / javascript”),您会看到聊天有效。可能有一些我不知道的优化,但是我建议您深入研究他们的代码,同时深入研究那些有福的文档,以了解其工作原理。它应该使您了解下一步的操作。
我花了很多时间才能找到所有这些不同的资源并连接点,所以您一定要检查一下它们。