node.js - log - nodejs console time
Iniciar script para node.js repl (5)
¿Hay alguna forma de configurar la respuesta de node.js? Quiero requerir jquery y subrayar automáticamente cada vez que se inicia la respuesta. ¿Hay un archivo (noderc?) Que node.js carga cuando inicia la respuesta?
El equivalente en Python es editar ~/.ipython/ipy_user_conf.py
con:
import_mod(''sys os datetime re itertools functools'')
Intenté esto hoy pero .start
requirió un argumento. También creo que el useGlobal:true
era importante. Terminé usando:
var myrepl=require(''repl'').start({useGlobal:true});
myrepl.context[''myObj'']=require(''./myObject'');
Al guardar este código en test.js
, podría hacer un node test.js
luego acceder a myObj
en REPL.
Manteniendo las cosas simples esto es lo que aplaudí.
repl.js:
// things i want in repl
global.reload = require(''require-nocache'')(module) // so I can reload modules as I edit them
global.r = require(''ramda'') // <3 http://ramdajs.com/
// launch, also capture ref to the repl, in case i want it later
global.repl = require(''repl'').start()
Puedo invocar esto con la node repl
que se siente bien, y no me importan los globales, porque simplemente estoy dando vueltas en la respuesta.
No conozco ningún archivo de configuración de este tipo, pero si desea que los módulos foo
y bar
estén disponibles en un REPL, puede crear un archivo myrepl.js
contenga:
var myrepl = require("repl").start();
["foo", "bar"].forEach(function(modName){
myrepl.context[modName] = require(modName);
});
y cuando lo ejecuta con el node myrepl.js
, obtiene un REPL con esos módulos disponibles.
Con este conocimiento, puede poner #!/path/to/node
en la parte superior y hacerlo ejecutable directamente, o puede modificar su versión del módulo repl.js (fuente disponible en https://github.com/joyent/node/blob/master/lib/repl.js para inspección) o lo que sea :)
Puede ser una característica más nueva de Node.js (ya que esta pregunta tiene cuatro años), pero puedes cargar y guardar el historial de respuestas como ipython.
.break - While inputting a multi-line expression, sometimes you get lost or just don''t care about completing it. .break will start over.
.clear - Resets the context object to an empty object and clears any multi-line expression.
.exit - Close the I/O stream, which will cause the REPL to exit.
.help - Show this list of special commands.
.save - Save the current REPL session to a file
.save ./file/to/save.js
.load - Load a file into the current REPL session.
.load ./file/to/load.js
No puedo descubrir cómo ejecutar esto automáticamente cuando se inicia el shell, pero .load something
es lo suficientemente conveniente para mí en este momento.
Febrero de 2017 : aunque estoy de acuerdo con la respuesta aceptada, deseo agregar un poco más de comentarios aquí.
Me gusta configurar de la siguiente manera (desde el directorio de inicio en mi Mac)
.node ├── node_modules │ ├── lodash │ └── ramda ├── package.json └── repl.js
Entonces repl.js puede verse como sigue:
const repl = require(''repl'');
let r = repl.start({
ignoreUndefined: true,
replMode: repl.REPL_MODE_STRICT
});
r.context.lodash = require(''lodash'');
r.context.R = require(''ramda'');
// add your dependencies here as you wish..
Y finalmente, ponga un alias en su archivo .bashrc
o .zshrc
, etc. (dependiendo de sus preferencias de shell) - algo como:
alias noder=''node ~/.node/repl.js''
Ahora, para usar esta configuración, solo tienes que escribir el noder
desde la línea de comandos. Anteriormente, también especifiqué que siempre me gustaría estar en strict mode
, y no quiero que se imprima undefined
en la consola para las declaraciones, etc.
Para obtener información actualizada sobre las repl
y, en particular, repl.start
opciones de repl.start
vea here