自分の中で今とても熱いnode.js製のフレームワークです。
自分の中でしか熱くないみたいなのでqiitaのストック数も全然伸びません。
問題点
Synthなのですが、$ synth server
コマンドでしか開始することができないんですよね。
それではpm2やforever等のツールを使用することができません。
公式では以下のような解決策を提示していました。
app = require "./back/back-app"
port = process.env.PORT || 3000
app.listen port, ->
console.log "Synth is now listening on port #{port}"
Synthのバックエンドはexpressをラップしているため、このように実は簡単に実行することができます。
しかし、それではコマンド版の機能として提供されているGulpのWatch等が使えないのです!あぁ、コーヒーの神よ!我に御加護を。
解決策
コマンドが叩けないならライブラリの該当メソッドを直接叩けば良いじゃない
(マリー・アントワネット風に)
How to?
commands = require("./back/node_modules/synth/lib/commands")
port = process.env.PORT || 3000
# if you use production, NODE_ENV = "production"
mode = process.env.NODE_ENV || "development"
commands.startServer mode, port
これをback
とかfront
ディレクトリがある所に置けば良いです。
後は$ coffee app.coffee
するなり$ pm2 start app.coffee -i max
すれば完璧です。
JavaScriptで書いている人はまぁ頑張って書きなおして下さい(すっとぼけ)
これでpm2のデプロイも動いたため、特に問題はないと思います。
リリース時にはproductionモードにすると色々と便利な機能が動いたり動かなかったりします。
(ソースコードを見る限り、gulpのwatch機能が無効化されるくらい?)
そこら辺気づいたらバンバン作者にissueを投げましょう。