如何将脚本加载到节点.js REPL?

我有一个脚本,其中包含一些我想在REPL中使用的函数。foo.js

有没有办法让节点执行我的脚本,然后跳转到包含所有声明的全局变量的REPL,就像我可以使用或一样?python -i foo.pyghci foo.hs


答案 1

仍然没有内置任何内容来提供您描述的确切功能。但是,使用它来使用REPL中的.load命令的替代方法,如下所示:require

.load foo.js

它逐行加载文件,就像您在 REPL 中键入它一样。与此不同的是,这会用您加载的命令污染REPL历史记录。但是,它具有可重复的优点,因为它不像 那样缓存。requirerequire

哪个对您更好将取决于您的用例。


编辑:它的适用性有限,因为它在严格模式下不起作用,但三年后,我了解到,如果您的脚本没有,您可以使用eval加载脚本而不会污染REPL历史记录:'use strict'

var fs = require('fs');
eval(fs.readFileSync('foo.js').toString())

答案 2

我总是使用这个命令

node -i -e "$(< yourScript.js)"

工作方式与Python完全相同,没有任何包。