zoukankan      html  css  js  c++  java
  • webpack4 自学笔记五(tree-shaking)

    全部的代码及笔记都可以在我的github上查看, 欢迎star:

    https://github.com/Jasonwang911/webpackStudyInit/tree/master/ThreeShaking
     

    Three Shaking : 删除冗余代码,常规优化和引入第三方库

    JS Three Shaking

    webpack在2.0以后会标识多余代码 webpack.optimize.uglifyJS 来移除这些被标识的代码

    npm run pord 才开启tree shaking
    npm webpack-deep-scope-plugin (深度tree shaking)

     

    CSS Three Shaking

    需要借助 Purify CSS
    安装依赖: npm instal purify-css purifycss-webpack glob-all --save-dev

    option:
    path: glob.sync([]) // npm install glob-all --save-dev 处理多路径

     

    var path = require('path');
    var MiniCssExtractPlugin = require('mini-css-extract-plugin');
    var PurifyCSS = require("purifycss-webpack");
    var glob = require("glob-all");
    var ExtractTextPlugin = require("extract-text-webpack-plugin");
    
    module.exports = {
        mode: 'development',
        entry: {
            app: './src/app.js'
        },
    
        output: {
            path: path.resolve(__dirname, 'dist'),
            publicPath: './dist/',
            filename: '[name].bundle.js',
            chunkFilename: '[name].bundle.js'
        },
    
        module: {
            rules: [{
                test: /.less$/,
                use: [
                    MiniCssExtractPlugin.loader,
                    {
                        loader: 'css-loader',
                        options: {
                            minimize: true,
                            localIdentName: '[path][name]__[local]--[hash:base64:5]'
                        }
                    },
                    {
                        loader: 'less-loader'
                    }
                ]
            }]
        },
    
        plugins: [
            new MiniCssExtractPlugin({
                filename: "[name].min.css",
                chunkFilename: "[name].css"
            }),
            new PurifyCSS({
                paths: glob.sync([
                    // 要做CSS Tree Shaking的路径文件
                    path.resolve(__dirname, "./*.html"),
                    path.resolve(__dirname, "./src/*.js")
                ])
            })
        ]
    
    }
    

      

  • 相关阅读:
    python网络爬虫——scrapy核心组件介绍、请求传参、下载中间件
    python网络爬虫——Scrapy全站数据爬取【手动请求发送】及post请求的发送
    python网络爬虫——scrapy框架持久化存储
    php常见排序
    php实现快速排序
    mysql读写分离 主从同步
    php预定义字符
    本地Navicat连不上Linux虚拟机MySQL数据库问题
    php yii 命令
    yii 定义场景
  • 原文地址:https://www.cnblogs.com/jasonwang2y60/p/10046705.html
Copyright © 2011-2022 走看看