webpack 4使用筆記のplugin
3747 ワード
webpack 4
常用plugin clean-webpack-plugin html-webpack-plugin mini-css-extract-plugin terser-webpack-plugin( optimize-css-assites-webpack-plugin webpack-bundle-analzer clean-webpack-plugin クリアファイルプラグイン html-webpack-plugin .htmlファイルを自動的に作成して、css、jsなどのクラスメイトファイルを参照します. もしあなたがtemplateオプションを指定して、titleオプションを指定したら、webpackはどれを選択しますか?実際には、この時に指定されたテンプレートファイルのtitleを選択します.テンプレートファイルにtitleが設定されていなくても. mini-css-extract-plugin はcssを分離します.このプラグインは は、CSSを含むJSファイルごとにCSSファイルを作成します.CSSとSourceMapsのロードをサポートします. を使用しています.
terser-webpack-plugin( webpack 4は を抽出することができることに同意する.圧縮された構成も です.
optimize-css-assites-webpack-plugin はデフォルトではjsだけ圧縮されているので、設定 は、extract-text-webpack-pluginと同様に、 webpack-bundle-analzer は、 を最適化することができる.
写真はwebpack-bundle-analzerのgithubから来ます.
常用plugin
webpack4
)new cleanWebpackPlugin(
[resolve('dist'), resolve('build')], {
root: __dirname,
exclude: ['test.html'], //
verbose: true, // Write logs to console.
dry: false, // Use boolean "true" to test/emulate delete. (will not remove files).
watch: false, // If true, remove files on recompile.
beforeEmit: false //
})
new htmlWebpackPlugin({
title: 'testooo', // html
filename: 'detail.html', // html 。 index.html.
template: `./src/detail.html`, // html
chunks: ['index', 'vendor'], // (entry) 。 , js 。 chunks js 。
inject: 'body', // true ,script html body
hash: true, // hash js hash xx.js?xxxxxx
// html
minify: {
removeAttributeQuotes:true,
removeComments: true,
collapseWhitespace: true,
removeScriptTypeAttributes:true,
removeStyleLinkTypeAttributes:true
}
})
にCSSを抽出します.extract-text-webpack-plugin
は、webpack 4以下のCSSファイル抽出のみに対応しています.webpack 4以上はmini-css-extract-plugin
webpack4
)webpack.optimize.CommonsChunkPlugin
を削除し、optimization
のsplitChunk
を使用して代替され、以下の構成は前のCommonsChunkPlugin
構成に代えて、JSとCSSファイルoptimization
オプションに移動しました.注意すべきは圧縮ツールがterser-webpack-plugin
に変換されました.これはwebpack公式でも推奨されているmodule.exports = {
optimization: {
splitChunks: {
vendors: {
name: 'venders',
chunks: 'all',
minChunks: chunks.length
}
}
}
webpack5
はcss圧縮を内蔵する可能性が高く、圧縮出力のためにoptimize-css-assites-webpack-pluginプラグインを使用することができます.optimization.minimizer
によってデフォルトの圧縮プロファイルをカバーすることにより、JSを指定した圧縮構成を確保しなければならない.optimization.splitChunks.cacheGroups
を介して一つのファイルにcssを抽出することができる.module.exports = {
minimizer: [
new terserPlugin({ // js
cache: true,
parallel: true
}),
new optimizeCSSAssetsPlugin({ // css
cssProcessorOptions: {
safe: true
}
})
],
optimization: {
cacheGroups: {
styles: {
name: 'styles',
test: /\.scss|css$/,
chunks: 'all', // merge all the css chunk to one file
enforce: true
}
}
}
}
webpack-bundle-analyzer
を使用することにより、プロジェクトの各モジュールのサイズを見ることができ、必要に応じて、写真はwebpack-bundle-analzerのgithubから来ます.