我想将我的Hubot封装在windows服务中进行部署。
我使用节点窗口来实现这一点,但我在尝试让它运行一个coffee脚本文件(这就是hubot使用的)时遇到了一些问题。
如果我手动运行
> coffee .node_moduleshubotbinhubot
一切都很好。
但我不知道如何从节点窗口脚本调用它。我在下面的尝试:
var Service = require('node-windows').Service;
var svc = new Service({
name:'Hubot',
description: 'Hubot',
script: 'coffee .\hubot\node_modules\hubot\bin\hubot'
});
svc.on('install',function(){
svc.start();
});
svc.install();
失败的原因如下:
C: \Users\luke.mcgregor\hubot>node app.js fs.js:747 returnbinding.mkdir(pathModule._makeLong(path),^错误:ENOENT,没有这样的文件或目录'C:\Users\luke.mcgregor\hubot\coffee.\hubot\node_modules\hubot\bin\demon'错误(本机)位于Object.fs.mkdirSync(fs.js:747:18)位于C:\Users\luke.mcgregor\AppData\Roaming\npm\node_modules\node-windows\lib\demon.js:409:16在FSReqWrap.b[完成](fs.js:226:19)
script
不是命令,只是文件的路径。您可以通过设置execPath
环境变量来更改节点窗口用于运行脚本的可执行文件:https://github.com/coreybutler/node-windows/issues/61#issuecomment-51423542