我想将Hubot包装在Windows服务中进行部署。

我正在使用node-windows来执行此操作,但是在尝试使其运行咖啡脚本文件(hubot使用的文件)时遇到了一些麻烦。

如果我手动运行

> coffee .\node_modules\hubot\bin\hubot


一切正常。

但是我不知道如何从节点Windows脚本中调用它。我在下面的尝试:

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>节点app.js fs.js:747返回
  binding.mkdir(pathModule._makeLong(path),
                   ^错误:ENOENT,没有这样的文件或目录'C:\ Users \ luke.mcgregor \ hubot \ coffee
  。\ hubot \ node_modules \ hubot \ bin \ daemon'
      错误(本机)
      在Object.fs.mkdirSync(fs.js:747:18)
      在C:\ Users \ luke.mcgregor \ AppData \ Roaming \ npm \ node_modules \ node-windows \ lib \ daemon.js:409:16
      在FSReqWrap.cb [完成时](fs.js:226:19)

最佳答案

script不是命令,仅是文件的路径。您可以通过设置execPath环境变量来更改节点窗口用来运行脚本的可执行文件:https://github.com/coreybutler/node-windows/issues/61#issuecomment-51423542

关于node.js - Hubot Windows服务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33558393/

10-10 10:51