• webpack-clean-plugin webpack-css-plugin 定义全局参数 webpack-压缩css代码


    1、webpack-clean-plugin

    (1)什么是clean-webpack-plugin

    webpack-clean-plugin会在打包之前将我们指定的文件夹清空,然后再存放新打包的内容, 避免新老混淆问题。

    (2)clean-webpack-plugin使用

    https://github.com/johnagan/clean-webpack-plugin

    安装clean-webpack-plugin:

    npm install --save-dev clean-webpack-plugin
    
    • 1

    配置clean-webpack-plugin:

    const { CleanWebpackPlugin } = require('clean-webpack-plugin');
    plugins: [new CleanWebpackPlugin()]
    
    • 1
    • 2

    2、webpack-css-plugin

    (1)什么是mini-css-extract-plugin

    mini-css-extract-plugin是一个专门用于将打包的CSS内容提取到单独文件的插件,前面我们通过style-loader打包的CSS都是直接插入到head中的。

    (2)mini-css-extract-plugin使用

    https://webpack.js.org/plugins/mini-css-extract-plugin/

    安装:

    npm install --save-dev mini-css-extract-plugin
    
    • 1

    配置:

    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    
    • 1

    // 将css提取到单独文件

    new MiniCssExtractPlugin({
        filename: './css/[name].css',
    }),
    
    • 1
    • 2
    • 3

    替换style-loader:

    {
         loader: MiniCssExtractPlugin.loader,
    },
    
    • 1
    • 2
    • 3

    注意点: 如果相关文件资源无法显示, 需要根据打包后的结构手动设置公开路径

    options: {
        publicPath: "xxx"
    }
    
    • 1
    • 2
    • 3

    3、定义全局参数

    new webpack.DefinePlugin({
          BASE_URL: JSON.stringify('/mock'),
    }),
    
    • 1
    • 2
    • 3

    4、webpack-压缩css代码

    (1)mini-css-extract-plugin压缩css

    https://www.npmjs.com/package/mini-css-extract-plugin

    (2)安装JS代码压缩插件

    npm install --save-dev terser-webpack-plugin
    
    • 1

    (3)安装CSS代码压缩插件

    npm install --save-dev optimize-css-assets-webpack-plugin
    
    • 1

    (4)导入插件

    const TerserJSPlugin = require('terser-webpack-plugin');
    const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
    
    • 1
    • 2

    (5)配置webpack优化项

    optimization: {
       minimizer: [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin({})],
    Or:
    minimizer: [
          new UglifyJsPlugin({
            parallel: true,
            sourceMap: false,
            uglifyOptions: {
              warnings: false,
              comments: false,
            },
          }),
          new OptimizeCSSPlugin({
            cssProcessorOptions: { safe: true, map: { inline: false } },
          }),
        ],
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    注意: 由于配置了webpack的optimization.minimizer项目会覆盖默认的JS压缩选项,所以JS代码也需要通过插件自己压缩.

  • 相关阅读:
    通讯网关软件006——利用CommGate X2OPCUA实现OPC UA访问DDE数据源
    LeetCode 之 有序数组的平方
    C++多态与虚拟:运算符重载(Operator Overloading)
    一文熟悉 Go 的循环结构 —— for 循环
    云原生|kubernetes |来给生活比个椰---多容器之部署WordPress(多种方式部署)
    无状态自动配置 DHCPv6无状态配置 DHCPv6有状态配置
    公共关系学知识点整理
    Workfine新手入门:数据规范之列表
    软考:信息安全工程师4(系统安全)
    适用于Linux的Windows子系统(PHP搭建lmap、redis、swoole环境)
  • 原文地址:https://blog.csdn.net/weixin_45002586/article/details/127879967