2012-10-17 25 views
11

szukałem go i szukałem stackoverflow, ale nie natknąłem się na nic. Chcę stworzyć interaktywną powłokę z węzłem i zastanawiać się nad najlepszym podejściem do tego. Czy istnieje biblioteka, którą każdy mógłby polecić?Biblioteka/moduł Nodejs do tworzenia interaktywnych aplikacji CLI?

Napisałem bibliotekę, a teraz chcę, aby interfejs CLI wchodził z nią w interakcję, za pomocą 2 metod: uruchamiania aplikacji z parametrami lub za pośrednictwem powłoki interaktywnej. na przykład

$ node myapp doSomething 
App Result: I did something 
$ node myapp cli 
Entering interactive mode... 
myapp> 
myapp> doSomething 
App Result: I did something 
myapp> 

Wszelkie sugestie?

+0

Notatka: Obecnie buduję używając process.argv z parametrami, głównie interaktywność, którą próbuję zbudować – Brett

Odpowiedz

12
+0

Dzięki vinayr. REPL powinien działać świetnie. – Brett

+2

Inquirer wydaje się dobrą alternatywą, z walidacją i ładnymi podpowiedziami: https://github.com/SBoudrias/Inquirer.js/ – berdario

+0

Powiedz mi tylko, w jaki sposób 'commander.js' jest interaktywny? Nie może nic innego, jak zaakceptować opcje cli '$ myscript.js -foo -bar -baz'. Nic interaktywnego. Dlaczego to zasugerowałeś? – Green

3

I niedawno rozpoczęła projekt dla wzmocnionej REPL który dostarcza wtyczki i wsparcie dla wielu języków (jak coffeescript):

http://danielgtaylor.github.com/nesh/

Może być przydatna f lub Ty budując interaktywne aplikacje. Daj mi znać, jeśli chcesz zobaczyć wszystkie funkcje w Nesh!

+0

będzie na to patrzeć, dzięki Daniel. – Brett

0

To pytanie jest nieco stary, ale dałem trochę przebieg do modułu I zbudowany jakiś czas temu, że będzie uruchomić interaktywny wiersz poleceń powłoki, takie jak:

https://github.com/mrvisser/node-readcommand

Kluczową różnicą do to przez coś w rodzaju dowódcy, pozwala na utrzymanie stanu sesji powłoki i akceptowanie poleceń wewnętrznie w Node.js, w przeciwieństwie do wymagania, aby każde wywołanie było bezstanowym ponownym uruchomieniem z przeanalizowanymi argumentami powłoki. Skutecznie otacza wewnętrzny moduł węzła readline zabezpieczenia:

  • shell-jak parsowanie wejścia
  • wsparcie polecenia multi-line uciekając nową linię lub cytowanie nad nim
  • historii poleceń wsparcia (przy użyciu readcommand.loop)
  • argumentu opartego autouzupełnianie (owinięta readline s tekstowe autouzupełniania wsparcie

nadzieję, że ktoś inny też jest przydatny.

W celu uzyskania bardziej zaawansowanego i bardziej opiniotwórczego interaktywnego środowiska CLI, zbudowałem również node-corporal: https://github.com/mrvisser/node-corporal. To prawdopodobnie więcej niż szukasz, ale zapewnia strukturę i środowisko do ubijania razem aplikacji CLI.

Powiązane problemy