0

我想运行一个脚本,.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
>
4

1 回答 1

2

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

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

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

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

全局变量 likerequire 可以在它的第二个参数中传递

于 2017-06-27T19:37:42.243 回答