Есть ли способ сохранить node историю командной строки между сеансами?
Когда я запускаю node
из командной строки без аргументов, я ввожу интерактивную оболочку. Если я выполню некоторые команды, выйдите из node и перезапустите node, стрелка вверх ничего не делает (я бы хотел, чтобы она просматривала мои предыдущие команды).
Есть ли способ, с помощью которого я могу вызвать node интерактивно, чтобы он помнил мои старые команды?
Ответы
Ответ 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, как ожидалось.
Ответ 5
Узел поддерживает это изначально.
Когда в узле REPL просто выполните следующую команду, чтобы сохранить историю:
$> .save ./file/to/save.js
Ссылка: команды и специальные клавиши
Ответ 6
Также проверьте файл.node_repl_history в домашнем каталоге пользователя.