Входные данные, необходимые для создания утилиты командной строки с использованием nodejs

1

Мы пытаемся создать утилиту командной строки, используя node.js. Нам нужно создать что-то вроде утилиты geth, например, user запустит утилиту одной командой, которая откроет собственный терминал, где мы можем выполнять подкоманды. Причина, по которой нам нужно создать наш собственный вложенный терминал, заключается в том, что нам нужно инициализировать несколько переменных в одной команде и иметь возможность извлекать их во второй и так далее...

поэтому у нас есть несколько вопросов: 1) Подходит ли для этого node.js? Мы пытались использовать командир, но он создает команды, не поддерживают сеанс "2) мы попытались дознавателем + полководца + узлового-CMD, но это также дают проблемам.

Может быть, наш подход здесь неправильный, и кто-то может направить нас к этому? Любые вклады в этом направлении высоко ценятся.

  • 0
    Этот вопрос может быть слишком широким для StackOverflow. Можете ли вы уточнить свой вопрос, чтобы быть более конкретным?
Теги:
command-line
command

2 ответа

0

"Для этого подходит node.js?"
Конечно, почему бы и нет? Вы можете делать все, что хотите, с помощью Node.js

Очевидно, вы можете создать его с нуля, но есть некоторые хорошие библиотеки, которые могут помочь вам в этой задаче. Вы уже пробовали некоторые из них.

Personnaly, я попробую Vorpal сделать приложение cli:

const vorpal = require('vorpal')();

let variables = {};

vorpal
  .command('init', 'Initialise few variables.')
  .action(function() {
    return this.prompt({
      name: 'etherum_password',
      message: 'Please enter your etherum wallet password: '
    }, (result) => {
      variables = result
    })
  });

vorpal
  .command('pswd', 'Show etherum wallet password.')
  .action(function() {
    if (variables.etherum_password)
      this.log(variables.etherum_password)
    else this.log('Please run \'init\' command before.');
  });

vorpal
  .delimiter('$')
  .show();

Обратите внимание, что метод подсказки непосредственно вдохновлен Inquirer.js

0

Вы подошли к проблеме с неправильного угла. commander или node-cmd позволяют запускать команды оболочки внутри узловой программы. Вам нужно фактически реализовать оболочку.

Отправной точкой должен быть модуль readline, который позволяет обрабатывать данные stdin. Этот простой пример показывает, как создать оболочку, которая обрабатывает 2 команды: hello и exit:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('> ', (answer) => {
  if (answer == "hello") {
    console.log("world");
  }

  if (answer == "exit") {
    rl.close();
  }
});
  • 0
    Спасибо за ваш ответ, мы думали, что это наш второй вариант. Разве так создаются все командные строки ???
  • 0
    это просто отправная точка, если вы хотите использовать узел, но есть и другие технологии для создания инструментов командной строки
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню