`html-webpack-plugin`: 形容: `webpack`打包时,创立一个 `html` 文件,并把 `webpack` 打包后的动态文件主动插入到这个 `html` 文件当中 装置:yarn add html-webpack-plugin -D 应用示例: ` const HtmlWebpackPlugin = require('html-webpack-plugin') plugins: [ new HtmlWebpackPlugin({ filename: 'index.html', template: 'template.html }) ] `
`uglifyjs-webpack-plugin`: 形容:插件用来放大(压缩优化)js文件 装置: yarn add uglifyjs-webpack-plugin -D 应用示例: ` const UglifyJsPlugin = require('uglifyjs-webpack-plugin') optimization: { minimizer: [new UglifyJsPlugin()] } `
`clean-webpack-plugin`: 形容:革除打包之后多余的, 不确定的文件 装置:yarn add clean-webpack-plugin -D 应用示例: const { CleanWebpackPlugin } = require('clean-webpack-plugin') plugins: [ new CleanWebpackPlugin() ]
`copy-webpack-plugin`: 形容: 动态资源打包原样输入 装置: yarn add copy-webpack-plugin -D 应用示例: const CopyWebpackPlugin = require('copy-webpack-plugin') plugins: [ new CopyWebpackPlugin({ patterns: [ { from: path.join(\_\_dirname, 'assets'), to: 'assets' } ] }) ]
`optimize-css-assets-webpack-plugin`: 形容:用于优化或者压缩CSS资源 装置:yarn add optimize-css-assets-webpack-plugin -D 应用示例: ` const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin') plugins: [ new OptimizeCssAssetsPlugin() ] `
`terser-webpack-plugin`: 形容:用于压缩javascript 装置:yarn add terser-webpack-plugin -D 应用示例: ` const TerserPlugin = require('terser-webpack-plugin') optimization: { minimizer: [new TerserPlugin()] } ` ` 生产环境下(默认配置): optimization: { minimizer: [new TerserPlugin({ terserOptions: { warnings: false, compress: { warnings: false, drop_console: false, dead_code: true, drop_debugger: true }, output: { comments: false, beautify: false }, mangle: true }, parallel: true, sourceMap: false })], }, `
`mini-css-extract-plugin`: 形容:将CSS提取为独立的文件的插件 装置:yarn add mini-css-extract-plugin -D 应用示例: ` const MiniCssExtractPlugin = require('mini-css-extract-plugin') module: { rules: [ { test: /\\.(scss|sass|css)$/, use: \[MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'\] } ] } `
`webpack-node-externals`: 形容:当在Webpack中捆绑时,它将疏忽node_modules 装置: yarn add webpack-node-externals -D 应用示例: ` const nodeExernals= require('webpack-node-externals') externals: [nodeExernals()] `
`热加载`: 应用示例: ` const webpack = require('webpack') plugins: [ new webpack.HotModuleReplacementPlugin() ] `
`用于创立编译时 “配置的全局常量” 以不便进行 环境转换`: 应用示例: ` const webpack = require('webpack') plugins: [ new webpack.DefinePlugin({ 'process.env': { `NODE_ENV: (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'prod') ? "'production'" : "'development'"` } }) ] `
`webpack-merge`: 形容:webpack合并 装置 yarn add webpack-merge -D 应用示例: ` const webpackMerge = require('webpack-merge') const baseWebackConfig = require('./webpack.config.base') const webpackConfig = webpackMerge(baseWebackConfig, { mode: 'development', devtool: 'eval-source-map', stats: { children: false } }) module.exports = webpackConfig `