plugin有哪些

31次阅读

共计 1468 个字符,预计需要花费 4 分钟才能阅读完成。

html-webpack-plugin
自动打包生成 html

const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    // ...
    plugins: [new HtmlWebpackPlugin()
    ],
};

clean-webpack-plugin
在每次构建前清理 /dist 文件夹。
官方给的例子在新版本中运行不了,正确配置如下

const {CleanWebpackPlugin} = require('clean-webpack-plugin');
module.exports = {
  ...
  plugins:[new CleanWebpackPlugin()
  ],
}

extract-text-webpack-plugin(webpack 4 之前版本)
提取样式到 css 文件

const ExtractTextplugin = require('extract-text-webpack-plugin');
module.exports = {
  entry: './app.js';
  output: {filename:'bundle.js',},
  mode:'development',
  module: {
    rules:[
      {
        test:/\.css$/,
        use:ExtractTextplugin.extract({
          fallback:'style-loader',
          use:'css-loader',
        })
      }
    ]
  },
  plugins:[new ExtractTextPlugin('bundle.css')
  ]
} 

mini-css-extract-plugin(webpack 4 及以上版本)
按需加载 CSS

mini-css-extract-plugin 可以理解成 extract-text-webpack-plugin 的升级版
它拥有更丰富的特性和更好的性能,从 Webpack 4 开始官方推荐使用该插件进行样式提取(Webpack 4 以前的版本是用不了的)

mini-css-extract-plugin 的特性 最重要的就是它支持按需加载 CSS
以前在使用 extract-text-webpack-plugin 的时候我们是做不到这一点的
举个例子,a.js 通过 import()函数异步加载了 b.js,b.js 里面加载了 style.css,那么 style.css 最终只能被同步加载(通过 HTML 的 link 标签)
但是现在 mini-css-extract-plugin 会单独打包出一个 0.css(假设使用默认配置),这个 CSS 文件将由 a.js 通过动态插入 link 标签的方式加载。

const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
    entry: './app.js',
    output: {filename:'[name].js',
    },
    mode: 'development',
    module: {
        rules: [{
            test: /\.css$/,
            use: [
                {
                    loader: MiniCssExtractPlugin.loader,
                    options: {publicPath:'../',},
                },
                'css-loader'
            ],
        }],
    },
    plugins: [
        new MiniCssExtractPlugin({filename: '[name].css',
            chunkFilename:'[id].css',
        })
    ]
}

官网地址:https://www.webpackjs.com/concepts/

正文完
 0