Подтвердить что ты не робот

Есть ли способ сохранить node историю командной строки между сеансами?

Когда я запускаю node из командной строки без аргументов, я ввожу интерактивную оболочку. Если я выполню некоторые команды, выйдите из node и перезапустите node, стрелка вверх ничего не делает (я бы хотел, чтобы она просматривала мои предыдущие команды).

Есть ли способ, с помощью которого я могу вызвать node интерактивно, чтобы он помнил мои старые команды?

4b9b3361

Ответ 1

Вы можете использовать rlwrap для хранения команд node.js REPL в файле истории.

Сначала установите rlwrap (легко выполняйте с менеджером пакетов, например apt-get или brew и т.д.).

Затем добавьте псевдоним для node:

alias node='env NODE_NO_READLINE=1 rlwrap node'

Я нахожусь в OSX, поэтому добавляю этот псевдоним к моему файлу ~/.bash_profile и перезагружаю файл bash_profile через source ~/.bash_profile.. и мне хорошо идти!

Надеюсь, это поможет!

Ответ 2

Я нашел хороший маленький проект, который решает проблему:

https://www.npmjs.org/package/repl.history

установить с помощью npm (npm install -g repl.history) и запустите repl.history в командной строке.

Ответ 3

io.js 2.0 включает поддержку постоянной истории REPL.

env NODE_REPL_HISTORY_FILE=$HOME/.node_history iojs

Максимальная длина истории может быть установлена ​​с помощью NODE_REPL_HISTORY_SIZE, по умолчанию 1000.

В io.js 3.0+ история REPL включена по умолчанию, а NODE_REPL_HISTORY_FILE устарела в пользу NODE_REPL_HISTORY (по умолчанию: ~/.node_repl_history).

Ответ 4

Мне нравится комбинация обоих ответов dreampulse и badsyntax. С repl.history, плюс добавление к моему .bash_profile, я получаю поведение, которое я ожидаю, это история команд и подсветка синтаксиса в интерактивной оболочке node, но обход repl при вызове с аргументами (для запуска script).

npm install -g repl.history

Затем отредактируйте файл ~/.bash_profile, добавив:

function node(){
    if test "$#" -lt 1; then repl.history
    else env node [email protected]; fi; }

Теперь перезагрузите вашу оболочку или запустите . ~/.bash_profile, и вам хорошо идти.


Теперь выполняется

$ node

откроет интерактивную оболочку repl.history nodejs и

$ node program.js [...]

запустит program.js с node, как ожидалось.

Ответ 6

Также проверьте файл.node_repl_history в домашнем каталоге пользователя.