Как получить последний вход Node REPL без файла истории repl
Я делаю собственную трассировку / стек ошибок для моего текущего проекта, и мне нужна строка (в виде строки), в которой есть ошибка. В файлах я могу легко получить строку, но в узле REPL я не могу придумать, как получить ввод.
Я пытался получить .node_repl_history
файл в домашнем каталоге (или переменную среды NODE_REPL_HISTORY, если она установлена), с которой я работал process.stdin
и обычный модуль repl, но, кажется, ничего не работает.
var stack = this.stack.split("\n");
//.... the stack array is shifted a bunch of times
else {
var match = stack[0].match(/repl:(\d+):(\d+)/)
var line = "";
stack.push(`In <stdin> at line ${match[1]}:${match[2]}`)
if (process.env["NODE_REPL_HISTORY"]) {
if (process.env["NODE_REPL_HISTORY"] === "") {
line = "<stdin>"
}
else {
line = fs.readFileSync(process.env["NODE_REPL_HISTORY"], {encoding: "utf-8"}).split("\n")[0];
}
}
else if (fs.existsSync(os.homedir() + ".node_repl_history")) {
line = fs.readFileSync(os.homedir() + "\\.node_repl_history", {encoding: "utf-8"}).split("\n")[0];
}
stack.push(line);
if(line !== "<stdin>") stack.push(" ".repeat(match[2] - 1) + "^");
}
line
переменная должна быть установлена на вход, с которым была произведена ошибка, но она дает мне ввод / строку, которую я имел до этого вместо этого.