3

使用此示例 procfile:

web: node app.js

运行命令时出现错误

foreman check

我得到的错误是:

ERROR: no processes defined

不确定这是否重要,但我在 Windows 8 上运行它。该应用程序在我的本地计算机上连续运行,仅运行:

node app.js
4

1 回答 1

3

不幸的是,Foreman不能在 Windows 上运行。ddollar 启动了一个替代项目foreman-windows来尝试添加 Windows 支持,但我不知道它是否已经完全启动。

如果你想要一个帮助任务来在本地启动你的节点环境,编写你自己的蛋糕任务是很好的,尽管是手动的,替代:

{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"

但是,如果您尝试exec在 Windows 上使用该格式,它将失败。相反,产生一个新的 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>
于 2012-08-26T15:46:49.977 回答