我有一个.js文件,它意味着由命令行上的Node.js执行。我已经使用npm
设置了所有内容,并将文件作为“bin”放入用户的路径中。我的问题是,因为文件以.js结尾,所以从命令行运行它会将其发送到基于JScript的Windows脚本宿主而不是节点,如预期的那样。
我正在尝试编写一个JScript包装器,坐在myprogram.js
,由Windows脚本宿主执行,然后发送到Node.js.不幸的是,似乎WScript的Exec
命令的行为与UNIX exec命令不同:
var shell = new ActiveXObject("WScript.Shell");
var proc = shell.exec("node .\\Library\\executable.js");
while (proc.Status === 0) {
WScript.Sleep(100);
}
WScript.Echo(proc.Status);
这会缓冲程序的输出,并通过某种JScript WshScriptExec
对象公开它。
我需要一个脚本,一个功能或其他方法,将整个终端交给我正在启动的命令行脚本。最有用的是,我想用我正在执行的命令的进程替换正在执行的JScript进程(即UNIX - exec
- y行为。)有没有办法做到这一点,或者有些解决我问题的其他方法?
答案 0 :(得分:0)
完全避免使用.js后缀,因此您将获得相同的未经修饰的命令名称,例如在所有平台上都是可执行文件。
通过如下所示在package.json中设置bin来完成,npm将对其进行排序:
{ "bin" : { "executable" : "./executable.js" } }