在node.js进入交互模式之前,有没有一种方法可以执行一些代码(在文件中或从字符串中,实际上并不重要)?
例如,如果我创建了一个脚本__preamble__.js
,其中包含:
console.log("preamble executed! poor guy!");
用户输入node __preamble__.js
,就会得到以下输出:
preamble executed! poor guy!
> [interactive mode]
发布于 2013-03-13 22:06:21
很老的问题但是..。
我相信,我正在寻找类似的东西,并发现了这一点。您可以打开REPL (在终端上输入node
),然后加载一个文件。像这样:.load ./script.js
。按enter键,将执行文件内容。现在,在脚本中创建的所有内容(对象、变量、函数)都将可用。
例如:
// script.js
var y = {
name: 'obj',
status: true
};
var x = setInterval(function () {
console.log('As time goes by...');
}, 5000);
在REPL上:
//REPL
.load ./script.js
现在你在REPL上输入并与“活动代码”交互。您可以使用console.log(y)
或clearInterval(x)
;
这会有点奇怪,因为“随着时间的推移……”保持每五秒(大约)出现一次。但是它会起作用的!
发布于 2011-12-18 09:19:39
您可以很容易地在Node软件中启动一个新的repl
:
var repl = require("repl");
var r = repl.start("node> ");
r.context.pause = pauseHTTP;
r.context.resume = resumeHTTP;
然后,您可以在REPL中调用pause()
或resume()
,并直接执行函数pauseHTTP()
和resumeHTTP()
。只要将您想要公开给REPL的context
成员的内容赋值即可。
发布于 2016-03-28 01:18:40
这可以通过current version of NodeJS (5.9.1
)来实现:
$ node -i -e "console.log('A message')"
-e
标志对字符串求值,-i
标志开始交互模式。
您可以在参考的pull request中阅读更多信息
https://stackoverflow.com/questions/8549145
复制相似问题