node.js - tutorial - ¿Hay alguna forma de que el nodo guarde el historial de línea de comandos entre sesiones?
para que se usa elastic search (6)
Encontré un pequeño proyecto agradable, que soluciona el problema:
instale usando npm ( npm install -g repl.history
) y ejecute repl.history
en la línea de comandos.
Cuando ejecuto el node
desde la línea de comando sin argumentos, ingreso un shell interactivo. Si ejecuto algunos comandos, salgo del nodo y reinicio el nodo, la flecha hacia arriba no hace nada (me gustaría que se desplace por mis comandos anteriores).
¿Hay alguna forma en que pueda invocar el nodo de forma interactiva para que recuerde mis comandos antiguos?
Me gusta la combinación de las respuestas de ambos dreampulse y badsyntax. Con repl.history, más una adición a mi .bash_profile, obtengo el comportamiento que espero, que es el historial de comandos y el resaltado de sintaxis en el shell interactivo del nodo, pero eludir respuesta cuando se llama con argumentos (para ejecutar un script).
npm install -g repl.history
Luego edita tu ~ / .bash_profile, agregando:
function node(){
if test "$#" -lt 1; then repl.history
else env node $@; fi; }
Ahora reinicia tu shell o corre . ~/.bash_profile
. ~/.bash_profile
y listo.
Ahora corriendo
$ node
abrirá la cáscara interactiva nodejs repl.history, y
$ node program.js [...]
ejecutará program.js con el nodo como se esperaba.
Nodo soporta esto de forma nativa.
Cuando esté en el nodo REPL, simplemente emita el siguiente comando para guardar el historial:
$> .save ./file/to/save.js
Podría usar rlwrap para almacenar los comandos REPL de node.js en un archivo histórico.
Primero, instale rlwrap (hecho fácilmente con un administrador de paquetes como apt-get o brew, etc.).
Luego agrega un alias para el nodo:
alias node=''env NODE_NO_READLINE=1 rlwrap node''
Estoy en OSX, así que agregué ese alias a mi archivo ~/.bash_profile
, y volvería a cargar mi archivo bash_profile a través de source ~/.bash_profile
.. ¡y estoy listo!
¡Espero que esto ayude!
También verifique el archivo .node_repl_history en el directorio de inicio del usuario.
io.js 2.0 incluye soporte para el historial de REPL persistente .
env NODE_REPL_HISTORY_FILE=$HOME/.node_history iojs
La longitud máxima del historial se puede establecer con NODE_REPL_HISTORY_SIZE
, que por defecto es 1000.
En io.js 3.0+, el historial de REPL está habilitado de forma predeterminada y NODE_REPL_HISTORY_FILE
está en desuso en lugar de NODE_REPL_HISTORY
(predeterminado: ~/.node_repl_history
).