【发布时间】:2023-04-03 05:20:02
【问题描述】:
Emacs lisp 命令调用node hello.js:
(call-process "node" nil t nil "hello.js")
hello.js 的两种变体:
-
hello_1.js:console.log('Hello world!');输出:
Hello world! 0 -
hello_2.js:console.log('Hello world!'); process.exit(5);输出(日志语句没有输出!):
5
process.exit(5) 导致输出被抑制的原因是什么?
注意事项:
我在GNU Emacs 24.3.1 (i386-mingw-nt5.1.2600) 中遇到了这个问题 2013-03-17 在 MARVIN 上结合 Node.js v0.10.18,运行于 Windows XP/SP3/32。
我试过EShell执行节点命令行:无输出
-
process.exit()调用低级process.reallyExit(),导致问题: 没有输出process.reallyExit()是用 C++ 实现的:void Exit(const FunctionCallbackInfo<Value>& args) { HandleScope scope(node_isolate); exit(args[0]->IntegerValue()); }[...]
NODE_SET_METHOD(process, "reallyExit", Exit);
【问题讨论】:
-
node -p "console.warn('Hello World!!');process.exit(0);"在我的 Ubuntu 12.04(Emacs 24.2)的 eshell 中输出"Hello World!!"。
标签: windows node.js emacs elisp