我有一个脚本foo.js,其中包含一些我想在REPL中使用的功能。
foo.js
有没有办法让节点执行我的脚本,然后使用所有声明的全局变量跳入REPL,就像我可以使用python -i foo.pyor一样ghci foo.hs?
python -i foo.py
ghci foo.hs
仍然没有内置功能可以提供您描述的确切功能。但是,也可以使用require它来在REPL中使用.load命令,例如:
require
.load
.load foo.js
它会逐行加载文件,就像您在REPL中键入文件一样。与require此不同,这会使用您加载的命令污染REPL历史记录。但是,它具有可重复的优势,因为它没有像一样被缓存require。
哪种对您更好,将取决于您的用例。
编辑: 它的适用性有限,因为它不能在严格模式下工作,但是三年后,我了解到,如果您的脚本没有'usestrict',您可以使用它eval来加载脚本\而不会污染REPL历史记录:
'usestrict'
eval
var fs = require('fs'); eval(fs.readFileSync('foo.js').toString())