webpack

開発をより効率化しよう

 

自己紹介

まろC

株式会社LIG

フロントエンドエンジニア

 

略歴

3年前バックエンドエンジニアとして

web業界に殴り込み、昨年9月から

LIGにフロントエンドエンジニアとして

ジョイン。

好きなAWSはS3

フロントエンド開発で

gulp等のタスクランナー使いつつ

sass,ect,ejs,coffeescript等のaltjs

で開発しているが

もう一歩踏み込んだフロントエンド開発をしたい方へ

webpack使いませんか

というお話。browserifyのことは話しません

webpackとは

jsの依存関係を解決して一つにするツール

Text

<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="./assets/js/TweenMax.min.js"></script>
<script src="./assets/js/jquery.scrollmagic.min.js"></script>
<script src="./assets/js/slider.js"></script>
<script src="./assets/js/feed.js"></script>
<script src="./assets/js/common.js"></script>
<script src="./assets/js/index.js"></script>
<script src="./assets/js/bundle.js"></script>

リクエスト数少なくなって

パフォーマンスあがるよね

これだけだと普通に圧縮して

一つにくっつければ

いいんじゃない?

例えばgulpタスクで圧縮して

結合しようとした場合、

順番や、パスを気にしなければ

なりません。

でもwebpackなら順番気にせず

使うところでrequireすれば、

jsでもhtmlでもcssでも画像でも

ビルド時そのモジュールを探して

パックしてくれます。

パスもbowerや自作プラグインから

気にせずいけます

依存性解決

main.js

bundle.js

jquery.js

script.

js

slider.js

index.js

Tweenmax

.js

feed.js

under

score

.js

template

.html

require

デザインパターン

global

・例えばPC/SPディレクトリ分けている開発環境の場合、共通に使いたいjsを一つの場所からrequireすればわざわざコピーして使わなくてもいい

・jquery等グローバルに出す設定をすることで

requireせずに使用できる

・requireを意識することで

jsを機能ごとの部品でつくる意識になる

共通で使えるものはファイルを分けて

classな書き方でmodule.exportsしておくなど

依存性解決ツールを使うメリット

他のツールでも同じ

・画像もurl-loaderでrequireすることで開発とプロダクションでの違いでエラーにならない。

・複数エントリーポイントから複数ファイルを出力することができる

・underscore-template-loaderでテンプレートhtmlとして保存。使いたいところで動的読み込み

webpackのメリット

loaderという最強ツールを使えばいい感じになる

・coffee-loaderでcoffeescriptで書いてもOK

requireするファイルはjs、coffee混在OK

・jqueryプラグインによってはrequireしても

一工夫必要なものもあります

(scrollmagicがそうでした。)

・日本語情報の少なさ

デメリット

機能がたくさんあって普通のweb制作には持て余すところもありますが、

便利です。

 

js設計においてもモジュール化の意識を高めることができました。

 

まずは npm install webpack

まとめ

npm install webpack

ご静聴ありがとうございました。