14909
grunt（自動ビルドツール）を利用したWEBアプリ開発の勉強をしております。  
node.jsやgruntを用いた開発・ビルド環境の構築方法や、`grunt serve`コマンドで  
テストサーバを立てる方法は多く凡例があるのですが、ビルド後の情報が少ないため、  
質問させて下さい。

gruntでは、`minify`などを行った結果を例えば、distフォルダなどにまとめてくれますが、  
開発環境から本番環境に移して、サーバを立ち上げる場合、一般的にはどのようにするので  
しょうか。  
現状、以下があるのではと考えています。  
①本番環境のpublicな領域にdist以下を置いて、Apacheサーバなどで、`index.html`にアクセスできるようにする。  
②本番環境にnode.jsを導入し，nodeでサーバサイドjavascriptを起動する。

あまり情報がないので、シンプルに①なのかなと思うのですが、nodeで起動できるjavascriptくらい自動生成するかもとも思っています。

全く、見当違いをしている可能性もあるので、これが常識だみたいなものがあれば、  
ご教授頂ければと思います。よろしくお願いします。
CC BY-SA 3.0
2015-08-26T12:33:55.540
14875
2015-08-27T15:06:03.560
2015-08-26T14:51:31.013
2238
11079
question
javascript node.js grunt
gruntでビルド後の本番環境の構築の一般解について
gruntは単に自動化のためのツールであって、gruntでビルドするとデプロイの方法が変わってくるというものではありません。「gruntでビルドしたからデプロイはこうするのが普通だ」というような常識はないでしょう。

gruntでビルドした後の情報が少ないように見えるのは、ビルドの方法とデプロイの方法はほとんど無関係だからです。デプロイの方法を検索したいなら、「grunt」をキーワードに探すのではなく、「amazon
web service デプロイ」「heroku デプロイ」「レンタルサーバ デプロイ」とか本番環境と関連させて検索してみるとよいと思います。

勉強中とのことですが、まずは現在予定している環境へ取り敢えずどんな方法でも良いのでデプロイしてみたらいかがでしょうか。デプロイしてみて動けば、とりあえずそれは方法の一つとして間違ってはいないでしょうし、動かなければ何か勘違いしているのでしょう。私はとりあえずいろいろやってみて覚えました。

(1)か(2)かでいえば、静的なページやクライアントサイドだけで動くアプリケーションなら(1)でも(2)でも動くでしょうし、nodeアプリケーションであれば必然的に(2)を選ぶことになるでしょう。いずれにせよ実際にデプロイしてみればわかります。

ところで、この業界はころころ「常識」が変わるので、あんまり「常識」を鵜呑みにしないほうがいいです。何しろ、
**nodeアプリケーションはgruntでビルドするのが常識だったのは過去の話**
で、もうすでにgruntは廃れつつあります。現在は、記述性が高くプラグインの品質も高いgulpのほうがよく使われるようになってきています。今から新しいアプリケーションを作るならgulpをおすすめします……が、もちろんgulpもいつまで持つのか不明です。「〇〇が常識！」という言葉の賞味期限は長くて１年とかで、それ以降は「昔の話」ですし、「〇〇が常識！」という人は自分が手慣れたやり方を周囲に押し付けているだけというときもあるので、さほど気にしなくて大丈夫です。

### まとめ：

  * デプロイの方法とgruntはあまり関係ありません
  * 思いついた方法で動けば、ひとまず間違いではありません
  * 常識はすぐ変わるので気にしなくていいです
CC BY-SA 3.0
2015-08-27T11:11:05.410
14909
2015-08-27T15:06:03.560
2015-08-27T15:06:03.560
10330
10330
14875
answer