Как получить последний вход 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 переменная должна быть установлена ​​на вход, с которым была произведена ошибка, но она дает мне ввод / строку, которую я имел до этого вместо этого.

0 ответов

Другие вопросы по тегам