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")
                ])
            })
        ]
    
    }
    

      

  • 相关阅读:
    <转> 百度空间 最大子图形问题详解
    Hdu 1124 Factorial
    Uva 457 Linear Cellular Automata
    求01矩阵中的最大的正方形面积
    【HYSBZ】1036 树的统计Count
    【SPOJ】375 Query on a tree
    【POJ】3580 SuperMemo
    【CodeForces】191C Fools and Roads
    【FOJ】2082 过路费
    【HDU】3726 Graph and Queries
  • 原文地址:https://www.cnblogs.com/jasonwang2y60/p/10046705.html
Copyright © 2011-2022 走看看