replpad
это круто, но для быстрого и простого способа загрузки файла в узел, импорта его переменных и запуска repl, вы можете добавить следующий код в конец вашего файла .js
if (require.main === module){
(function() {
var _context = require('repl').start({prompt: '$> '}).context;
var scope = require('lexical-scope')(require('fs').readFileSync(__filename));
for (var name in scope.locals[''] )
_context[scope.locals[''][name]] = eval(scope.locals[''][name]);
for (name in scope.globals.exported)
_context[scope.globals.exported[name]] = eval(scope.globals.exported[name]);
})();
}
Теперь, если ваш файл src.js
, запуск node src.js
запустит узел, загрузит файл, запустит REPL и скопирует все объекты, объявленные как var
на верхнем уровне, а также любые экспортированные глобальные переменные.
if (require.main === module)
гарантирует, что этот код не будет выполнен, если src.js
включен через оператор require
. Фактически, вы можете добавить любой код, который хотите оправдать, когда запускаете src.js
автономно для целей отладки, внутри оператора if
.