Webpackのextract-text-webpack-pluginプラグイン
3328 ワード
今日皆さんと分かち合う
表面上の
ソリューション:考え方:
上のコード:
要点:
1、
注意:
webpack
のプラグインextract-text-webpack-plugin
.まずwebpack
のパッケージメカニズムについてお話しします.webpack
はもともと.js
ファイルしかパッケージ処理できませんが、強力なloader
を通じて、さまざまなタイプのファイルをパッケージ処理することができます.例えば、.css
ファイルなどです.表面上の
webpack
はloader
を通じていろいろな書類を梱包することができて、もう完璧です.しかし、いくつかのシーンでも問題があります.例えば、私たちのcss
の内容はbundle.js
にパッケージされています.本番環境では、ブラウザのキャッシュを使用してユーザー体験を向上させ、webpack
のhash
を使用します(通常のjs
ファイルhash
タイプではchunkhash
が使用されます).では、私はjs
部分のコードを修正すれば、私のcss
モジュールも再パッケージされ、css
モジュールとしても内容の修正があります.あるいはcss
モジュールのみが修正され、js
モジュールは変更されていませんが、いずれもbundle
の中にあるので、修正されていると考えられます.ソリューション:考え方:
css
モジュールとjs
モジュールを別々にパッケージ化し、言い換えればcss
コードをjs
ファイルから抽出し、モジュールを個別に出力します.方法:extract-text-webpack-plugin
プラグイン用法説明:ExtractTextPlugin
基本パラメータ説明:filename
:ファイルを生成するファイル名は、[name],[id],[contenthash]allChunks
を含むことができる:false
の場合、初期化時に導入されたcss
のみが抽出され、allChunks
の属性がtrueの場合、非同期導入されたcss
も抽出される.ExtractTextPlugin.extract
基本パラメータ説明:use
:ファイルをコンパイルするためにどのようなloaderが必要かfallback
:ここでは抽出しない場合、css publicfile
をどのような構成で処理するかを示します:プロジェクトパスを上書きし、このcss
ファイルを生成するためのファイルパス上のコード:
webpack
の構成に次のコードを追加します.const ExtractTextPlugin = require("extract-text-webpack-plugin"); // install
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
scss: ExtractTextPlugin.extract({ fallback: 'vue-style-loader', use: 'css-loader!sass-loader' })
css: ExtractTextPlugin.extract({ fallback: 'vue-style-loader', use: 'css-loader' }),
}
}
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({ //css
fallback: "style-loader",
use: "css-loader"
})
},
{
test: /\.scss$/,
use: ExtractTextPlugin.extract({ //css
fallback: "style-loader",
use: ['sass-loader','postcss-loader']
})
}
]
},
plugins: [
new ExtractTextPlugin({
filename: 'css/[name].[contenthash].css',
allChunks: true
})
]
要点:
1、
loader
において、.vue
文書に対してもcss
の引き抜きを行う..vue
アセンブリのすべてのcss
も正常に引き抜かれるようにします.2、plugins
のExtractTextPlugin
のallChunks
をtrue
に設定し、上のポイント1に合わせて、すべてのvue
コンポーネントのcss
をスムーズに抽出することができます.注意:
webpack4
では、mini-css-extract-plugin
で置き換えることを推奨します.mini-css-extract-plugin
の使用方法については、次を参照してください.https://www.npmjs.com/package/mini-css-extract-plugin