如何让Node REPL仅打印结果?

时间:2017-06-27 19:32:07

标签: javascript node.js read-eval-print-loop xterm pty

我想使用.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 个答案:

答案 0 :(得分:2)

如果您对在当前范围内运行的代码感到满意,只需eval

> eval(fs.readFileSync('myFile.js', 'utf8'))
5

如果你想要一个新的范围,vm.runInNewContext(这不是一个安全问题,只有范围清洁度):

> vm.runInNewContext(fs.readFileSync('myFile.js', 'utf8'))
5

全球比赛,例如require String.prototype.replace()