webpack は optimization_html/css_WEB-ITnose を使用します

WBOY
リリース: 2016-06-24 11:29:38
オリジナル
1171 人が閲覧しました

はじめに

この記事は webpack の入門記事ではありません。webpack について知らない場合は、「Question Ye's Getting Started with Webpack」または Teacher Ruan の Webpack-Demos を参照してください。

Webpack を使用する理由

  1. React などのモジュラー開発フレームワークと一緒に使用することをお勧めします。
  2. gulp が 400 行のコードで実現できる機能を、160 行のコードでほぼ実現できる、比較的使いやすい構成ベースの構築ツールです。
  3. Webpack はメモリを使用してビルド コンテンツをキャッシュするため、ビルド プロセスが高速になります。

3 番目の点について少し説明したいと思います。以前に書いた「Webpack プラグインの書き方 (1)」を読むと、Webpack はファイルの内容をラージ オブジェクトに格納することがわかります。ローダー間のさまざまなプラグイン呼び出しに便利なコンパイル。 gulpもストリーム(パイプ)などのメモリ処理手法を使っていますが、webpackはさらにその先を進んでいるように感じます。 Gulp はタスクごとにストリームを使用しますが、webpack はストリームを共有します。

Webpack 設定の簡単なレビュー

Webpack 設定は主に次の主要なプロジェクト用です:

  • entry: js エントリ ソース ファイル
  • output: 生成されたファイル
  • module: 文字列処理
  • resolve: ファイルpath
  • plugins: ローダーより強力なプラグインは、より多くの webpack API を使用できます

一般的に使用されるローダーの紹介

  • スタイルを処理し、less-loader、sass-loader などの CSS に変換します
  • URL ローダー、ファイル ローダーなどの画像処理。両方を使用する必要があります。そうしないと、サイズ制限を超える画像を対象フォルダーに生成できません
  • jsを処理し、es6以降のコードをes5のコードに変換します。例: babel-loader、babel-preset-es2015、babel-preset-react
  • expose-loader の場合、js モジュールをグローバル世界に公開します

よく使用されるプラグインの紹介

  • コードのホット リプレースメント、 hotmodulereplacementplugin
  • htmlファイル、htmlwebpackplugin
  • cssをインラインの代わりにファイルに拡張します。抽出すること、エラーを抽出します。プロセス
  • 複数の HTML が 1 つの js ファイル (チャンク) を共有する場合、CommonsChunkPlugin
  • を使用してフォルダーをクリーンアップすることができます。Clean
  • たとえば、js で $ を使用したい場合は、モジュールのエイリアス ProvidePlugin を呼び出します。 webpack の場合、$ を jQuery と一致させる必要があります
  • 最適化を使用する
  • 理解する 上記で紹介したローダーとプラグインを理解した後は、基本的に Webpack ベースのビルドの完全なセットを構築できます (gulp と grunt は必要ありませんが、組み合わせた写真)。使用時の最適化ポイントをいくつか紹介します。
  • 最適化ポイント 1. 開発環境と本番環境の区別方法

package.json のスクリプトに環境変数を設定します。Mac と Windows では設定が異なるので注意してください

"scripts": {    "publish-mac": "export NODE_ENV=prod&&webpack -p --progress --colors",    "publish-win":  "set NODE_ENV=prod&&webpack -p --progress --colors"}
ログイン後にコピー

  1. webpack.config のプロセスを使用します.js .env.NODE_ENV で判定

最適化ポイント2. コードホットリプレースメントを利用する

    コードホットリプレースメントを利用すると、開発中にページを更新せずに更新を確認することができます。 また、ビルドしたコンテンツを内部に配置することで、ビルドとコンパイルのパフォーマンスが向上するため、これは公式に推奨されるビルド方法です。
  1. 方法 1:

1. コードをエントリ js ファイルにインライン化します

2. コードホット置換用のプラグインを開始します

方法 2:

server.js を直接実装し、サーバーを起動します (必須)ホット リプレースメント プラグインを開始します)。以下は私がビジネスで使用する例です。一部の特定のパラメーターは webpack.config.js で直接構成できます。この方法は最も簡単ですが、当然のことながら、柔軟性は自分でサーバーを実装するほど良くありません。

最適化ポイント 3. インポートするとファイルが大きくなり、コンパイル速度が遅くなります。どうすればよいですか?

一緒にパッケージ化せずに分離したい場合は、externals を使用できます。次に、

人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート