32
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【node.js】express + Vue.jsでシンプルなテンプレートを作った

Last updated at Posted at 2017-10-30

はじめに

趣味のプロダクトを新たに作るにあたり、PHPはそろそろ飽きてきていたので新たな言語にチャレンジしようと思い、node.jsをインストールしていじってみたのですが、なかなかこれが動作が速くてよさげだったので採用することにしました。
いろいろ勉強していくうちに、gulpとかwebpackとか便利機能が沢山あると知り、またJavaScriptによるクライアントサイドのフレームワークも多数出ているので、これらをまとめてテンプレート化してしまえないか?という挑戦の記録がこのポストになります。

やりたかったこと

  • 出来るだけ構造を簡素にする
  • gulpとwebpackを併用してファイル変更を検知し自動ビルド
  • nodemonでサーバーサイドファイルの監視も同時に行い
  • ファイル変更を検知してブラウザの自動リロード
  • Vue.jsの単一ファイルコンポーネント構造を使用

出来るだけ構造を簡素にする

express+Vue.jsのテンプレートとしては、以下のようなものが見つかりました。
https://github.com/express-vue/express-vue - Vue.js公式のSSR用テンプレート
https://github.com/abusaidm/vue-express - abusaidm氏のテンプレート
上の方のテンプレートは公式だけあってがっちり作ってあるのですが、がっちり過ぎて初心者の私としてはいじくり方が分からないのと、あくまでもルーティングはexpressに任せたい(Vue.jsは描画に専念させたい)ということで、下のabusaidm氏のテンプレートを基に作っていくことにしました。

gulpとwebpackを併用して自動ビルド

最初はgulpのみでやろうと思いコードまで書いたのですが、gulp-browserifyがブラックリスト入りしていることや、gulpだけでやらせるとビルドが果てしなく重かったので、webpackを導入しました。gulpはタスクランナーに専念させます。

nodemonでサーバーサイドファイルの監視

サーバーサイドの監視もさせたいので、gulp-nodemonを使って監視させ、変更があったらサーバーを再起動させます。

ファイル変更を検知してブラウザの自動リロード

browserSyncを使います。クライアントサイドのファイルを監視させるとともに、nodemonにより再起動されたら更新作業を行わせるようにしてあるので、クライアントサイドでもサーバーサイドでもファイルを変更したらブラウザが自動リロードされます。便利。

Vue.jsの単一ファイルコンポーネントを使用

今後作成する趣味プロダクトでは、コンポーネント指向のVue.jsが合っていると感じたのでVue.jsに即決。拡張子vueの単一ファイルコンポーネントをwebpackで読み込ませてビルドできるようにしました。

できたもの

https://github.com/kaito3desuyo/express-vue-starter-template
こちら。使い方はREADMEを参照していただければ。

感想

環境構築だけで三日掛かるのはさすがに長すぎると思います。

32
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?