Как я могу заставить Node REPL печатать только результат?
Я хочу запустить скрипт используя .load myFile.js
но я не хочу печатать все, что находится в файле, только значение / результат того, что является файлом. Я использую Electron, xterm.js и node-pty для своего проекта.
Например, с этим кодом:
// type your code here
function sum(x, y) {
return x + y
}
sum(2, 3)
Я получаю что-то вроде этого:
> // type your code here
undefined
> function sum(x, y) {
... return x + y
... }
undefined
> sum(2, 3)
5
>
1 ответ
Решение
Если вы в порядке с кодом, работающим внутри текущей области, просто eval
Это:
> eval(fs.readFileSync('myFile.js', 'utf8'))
5
Если вы хотите новую сферу, vm.runInNewContext
(это не вопрос безопасности, только чистота объема):
> vm.runInNewContext(fs.readFileSync('myFile.js', 'utf8'))
5
Глобалы как require
может быть передан во втором аргументе.