WebpackのLoaderとPlugin

2066 ワード

Loader
モジュールのソースコードの変換に使用して、loaderはwebpackがどのように非javascriptモジュールを処理するかを説明して、そしてbuldの中でこれらの依存を導入します.loaderは、ファイルを異なる言語(Type Scriptなど)からJavaScriptに変換したり、インライン画像をdataに変換したりすることができます. URL.例えば、CSS-Loader、Style-Leoaderなどです.
loaderの使用は簡単です.
webpack.co nfig.jsでloaderを指定します.module.rulesは複数のloaderを指定できます.プロジェクトの各loaderに対してグローバル概観があります.
loaderはNodeJSで動作します.optionsオブジェクトで構成できます.pluginは、loaderにより多くの特性をもたらすことができる.loaderは圧縮、包装、言語翻訳などができます.
loaderはテンプレートのパスから解析して、npm install node_modulesカスタムloaderもできます.名前はXX-loaderです.
言語系プロセッサloader:Coffee Script、Type Script、ESNext、Sass、Less、Steylas.どの開発技術スタックでもwebpackが使えます.
Plugin
目的はloaderでは実現できない他のことを解決し、パッケージ最適化と圧縮から環境変数を再定義するまで、様々なタスクを処理するために機能が強いです.webpackは多くの開梱即使用のプラグインを提供しています.Common ChunkPluginは主に第三者ライブラリと公共モジュールを抽出するために使用されています.最初の画面にロードされているbundleファイルを避けるために、あるいは必要に応じてロードされるbundleファイルの体積が大きすぎて、負荷時間が長すぎて、最適化された利器です.複数ページのアプリケーションでは、各ページ間のアプリケーション共有コードに対してbundleを作成することができます.
webpack機能は強大で、難しい点はその配置ファイルにあります.webpack 4はデフォルトでは配置ファイルが不要です.modeオプションでwebpackにデフォルトの設定を指定できます.modeはdevelopment/productionに分けられます.デフォルトはproductionです.
プラグインはパラメータを携帯することができますので、plugins属性でnewインスタンスに入ります.
【Mode】configファイルに配置してもいいし、CLIパラメータに配置してもいいです.webpack--mode=production(一般的にはCLI、つまりnpmです. スクリプトの中に配置します).
webpack 4以下のバージョンでは、webpack 3.XXは、pluginsを通じて環境変数の配置を行います.
【recrove】モジュールは、recroverがライブラリであり、webpackがbundleに導入するモジュールコードを見つけてくれます.梱包する時、webpackはenhance-reolveを使って経路を解析します. 
 resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: { 'vue$': 'vue/dist/vue.esm.js', '@': resolve('src'),
    }
  }
 【Manifest】すべてのモジュール間の相互作用を管理します.runtimeは、モジュール識別子を調べ、背後に対応するモジュールを検索することができる.
問題1:webpackはbundleを使ってcontentを計算します. hashはファイル名、ファイル修正、新しいcontentとして機能します. hashは新しいファイルを持っていますが、キャッシュは無効です.しかし、ファイルの内容は修正されていません.計算されたhashは相変わらず変更されます.このファイルを解決するためには、もっと多くのruntimeとmaifestを知ることができます.
webpack原理:プロファイル定義のモジュールリストから、アプリケーションを処理し、エントランスファイルから再帰的に依存図を構築し、その後、すべてのモジュールを少量のbundleに包装し、通常は一つしかなく、ブラウザでロードすることができます.