来自Foreman检查的"No Processes Defined"错误,针对一个简单的node.js Procfile。

3

使用以下示例procfile:

web: node app.js

运行该命令时,我遇到了错误。

foreman check

我收到的错误信息是:
ERROR: no processes defined

不确定这是否重要,但我正在Windows 8上运行此应用程序。该应用程序在我的本地机器上成功运行,只需运行:

node app.js
1个回答

3

很不幸,Foreman 无法在Windows上运行。ddollar启动了一个备用项目foreman-windows,尝试添加对Windows的支持,但我不知道它是否真正得到推广。

如果您想本地启动节点环境,编写自己的cake任务是一个不错的手动替代方案:

{spawn, exec} = require 'child_process'

task 'start', 'Spin up dev environment', ->
  exec 'node app.js'

接着在命令行中执行该任务:

cake start

这样做可以让您获得创建多个任务以执行不同操作的附加好处,并对任务进行微调以适应项目需求。

请注意,Windows 在某些命令方面喜欢改变事情。例如,在基于 *nix 的计算机上,您可以使用以下命令在浏览器中打开您的站点:

exec "open http://localhost:3000/"

但在Windows中,使用的是start命令:

exec "start http://localhost:3000/"

另一个重要的区别是处理环境变量。在*nix系统中,您可以将它们简单地添加到您的命令前:

exec "NODE_ENV=staging node server.js"

但是如果你尝试在Windows上使用exec格式,将会失败。相反,可以生成一个新的bash:

terminal = spawn 'bash'
terminal.stdin.write "NODE_ENV=staging node server.js"
terminal.stdin.end()

您也可以从bash中监听事件:

terminal.stdout.on 'data', (data) ->
  console.log "#{data}"
terminal.stderr.on 'data', (data) ->
  console.log "#{data}"

如果你正在编写需要支持多个平台的工具,你可以相对容易地进行操作系统平台检查以进行适应:

os = require 'os'

if os.platform() is 'win32'
  <do Windows stuff>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接