このサンプル procfile を使用すると、次のようになります。
web: node app.js
コマンドを実行するとエラーが発生します
foreman check
私が得ているエラーは次のとおりです。
ERROR: no processes defined
これが問題かどうかはわかりませんが、私はこれを Windows 8 で実行しています。アプリケーションは、以下を実行しているローカル マシンで連続して実行されます。
node app.js
残念ながら、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/"
もう 1 つの重要な違いは、環境変数の処理です。*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 プラットフォームのチェックを比較的簡単に実行して対応することができます。
os = require 'os'
if os.platform() is 'win32'
<do Windows stuff>