1
1

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 3 years have passed since last update.

Webpackまとめ

Last updated at Posted at 2020-11-17

Webpackとは?

  • モジュールバンドラのこと。

モジュールバンドラとは?

  • 複数のモジュールを1つにまとめたファイルを出力するツールのこと(※出力設定によっては複数のファイルを出力することもあります)

webpack以外にモジュールバンドラはあるの?

  • Browserify
  • RequireJS

使うメリットは? 3つあります

  1. webpackが依存関係を考慮して1つのファイルにまとめてくれるので、開発者は依存関係を一切把握する必要はなくなりました。
  2. また、ファイルが1つになることでブラウザがWebアプリケーションを提供する時に読み込むファイルが減り、これに伴いHTTPリクエストの回数も減ることでユーザーに素早く画面を提供できるようになる。
  3. HTTPリクエストの効率は、要求されているファイルの数とサイズに正比例しますので、大規模なWebアプリケーションになるほど、Webpackの役割は重要になります。

どこで使えるの?

Node.jsの実行環境で使えます

どうすれば使えるの?

npmコマンドから導入し、コマンドを実行すれば使えます(下は開発環境のみで使う場合)

$ npm install webpack webpack-cli --save-dev

設定ファイルは?

webpack.config.js

まだピントこないんだけど。。。

  • 複数のjsファイルを書いた後に、コマンドでそれら全てのjsをまとめた1つのファイルをつくるよ。

  • ブラウザに表示するときはそのファイルだけを読むから表示も早くなる

これでイメージ湧きますか?:sweat_drops:

そもそもwebpackが必要になったの?

JavaScriptが人気になり、規模が広がりたくさんの機能が生まれた結果
依存性の解決、必要な時に機能を使うための仕組みが必要になったから

JavaScriptのモジュールの歴史

JavaScript のプログラムはとても小さいものから始まりました。
初期の用途は、jqueryなど必要に応じてウェブページにちょっとした動きを追加する独立したスクリプト処理がほとんどでした。

今や大量のJavaScriptで書かれたアプリケーションまで生まれるようになりました。(Angular , Reactなど)

そのため近年は、JavaScript プログラムをモジュールに分割して必要な時にインポートできるような仕組みの提供が検討されるようになったのです。

Node.js(2011~)は長年この機能を提供しています。
モジュールの利用を可能にする JavaScript ライブラリーやフレームワークも数多くあります
(例えばCommonJS やRequireJS など最近では Babel)。

2015年にES modulesというES2015仕様において策定された、JavaScriptファイルから別のJavaScriptファイルを読み込む仕組みが生まれました。

webpackの場合はこの標準仕様のES Modulesが使えたり、node_modulesのモジュールを結合できるといったメリットがあります。
詳しくはこちら
JavaScriptのモジュールシステムの歴史と現状

参考記事

ES modulesとは
JavaScriptのモジュールの歴史

webpackを利用してみる(入門編)

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?