Ответ 1
Я думаю, что commander.js - это то, что вы ищете.
https://github.com/visionmedia/commander.js
http://oscar-mejia.com/blog/how-to-create-a-command-line-program-with-nodejs/
Также посмотрите на REPL http://nodejs.org/api/repl.html
был googling для этого и искал stackoverflow, но я ничего не вижу. Я хочу создать интерактивную оболочку с node и задаться вопросом о наилучшем подходе для этого. Есть ли библиотека, которую любой может рекомендовать использовать?
Я написал библиотеку и теперь хочу, чтобы интерфейс CLI взаимодействовал с ней двумя способами: запуском приложения с параметрами или с помощью интерактивной оболочки. например.
$ node myapp doSomething
App Result: I did something
$ node myapp cli
Entering interactive mode...
myapp>
myapp> doSomething
App Result: I did something
myapp>
Любые предложения?
Я думаю, что commander.js - это то, что вы ищете.
https://github.com/visionmedia/commander.js
http://oscar-mejia.com/blog/how-to-create-a-command-line-program-with-nodejs/
Также посмотрите на REPL http://nodejs.org/api/repl.html
Vorpal - это основа для описания вопроса, хотя они называют это 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();
Недавно я начал проект для расширенного REPL, который предоставляет плагины и многоязычную поддержку (например, CoffeeScript):
http://danielgtaylor.github.com/nesh/
Это может быть полезно для вас при создании интерактивных приложений. Дайте мне знать, если вы хотите увидеть какие-либо функции в Nesh!
Этот вопрос немного устарел, но я дал некоторый пробег модулю, который я построил некоторое время назад, который запустит интерактивную командную строку командной оболочки:
https://github.com/mrvisser/node-readcommand
Ключевое отличие от этого над чем-то вроде commander заключается в том, что он позволяет поддерживать состояние сеанса оболочки и принимать внутренние команды в Node.js, а не требовать, чтобы каждый вызов являлся повторным запуском без сохранения состояния с обработанной оболочкой аргументы. Он эффективно обертывает node внутренний readline
модуль, чтобы обеспечить:
readcommand.loop
)readline
текстовая автоматическая полная поддержкаНадеясь, что кто-то еще найдет это полезным, тоже.
Для более продвинутых и упрямых интерфейсов CLI я также построил node-corporal
: https://github.com/mrvisser/node-corporal. Скорее всего, это больше, чем вы ищете, но это обеспечивает структуру и среду для взлома приложений CLI.