2012-10-17 17 views
11

googling per questo e in cerca di stackoverflow, ma non mi viene in mente nulla. Voglio sviluppare una shell interattiva con il nodo e chiedermi l'approccio migliore per questo. C'è una biblioteca che chiunque potrebbe consigliare di usare?Libreria/modulo Nodejs per lo sviluppo di app CLI interattive?

Ho scritto una libreria e ora voglio un'interfaccia CLI per interagire con esso, in 2 modi: eseguendo l'app con parametri, o tramite shell interattiva. per esempio.

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

Qualche suggerimento?

+0

Una nota: Attualmente sto costruendo con process.argv con i parametri, la sua principalmente l'interattività che sto cercando di costruire – Brett

risposta

12
+0

Grazie vinayr. REPL dovrebbe funzionare alla grande. – Brett

+2

Inquirer sembra una buona alternativa, con convalida e suggerimenti: https://github.com/SBoudrias/Inquirer.js/ – berdario

+0

Solo dimmi come 'commander.js' è interattivo? Non può fare altro che accettare le opzioni cli '$ myscript.js -foo -bar -baz'. Niente di interattivo. Perché lo hai suggerito? – Green

3

ho recentemente avviato un progetto per un REPL avanzata che fornisce plugin e il supporto multi-lingua (come CoffeeScript):

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

Potrebbe essere utile f o tu quando costruisci app interattive. Fammi sapere se ti piacerebbe vedere alcune funzionalità in Nesh!

+0

ci darà un'occhiata, grazie Daniel. – Brett

0

Questa domanda è un po 'vecchio, ma ho dato un po' di chilometraggio ad un modulo ho costruito qualche tempo fa che lancerà un prompt dei comandi di shell-come interattivo:

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

La differenza chiave questo su qualcosa come il comandante è che ti permette di mantenere lo stato della sessione shell e accettare i comandi internamente in Node.js, invece di richiedere che ogni invocazione sia una riesecuzione stateless con gli argomenti analizzati della shell. Si avvolge efficacemente modulo interno readline del nodo di fornire: analisi

  • conchiglia dell'ingresso
  • supporto comando multi-linea di escape del new-line o citando sopra
  • supporto cronologia dei comandi (quando si utilizza readcommand.loop)
  • argomento-base completamento automatico (avvolto intorno readline s basato sul testo di supporto completamento automatico qualcuno

Sperando altro lo trova utile anche

Per un framework CLI interattivo più avanzato e supponente, ho anche creato node-corporal: https://github.com/mrvisser/node-corporal. Probabilmente è più di quello che stai cercando, ma fornisce una struttura e un ambiente per montare le app CLI.

5

Vorpal è un framework esattamente per quello che descrive la domanda, anche se lo chiamano un 'immersive cli'.

var vorpal = require('vorpal')(); 

vorpal 
    .command('doSomething') 
    .action(function (args, cb){ 
    this.log('App Result: I did something'); 
    cb(); 
    }); 

vorpal 
    .delimiter('myapp>') 
    .show();