最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Web构建优化

    正文概述 掘金(Potter)   2021-02-17   520

    原文来自:Potter个人博客


    概要内容

    • DllPlugin 和 DllReferencePlugin 简介
    • 如何使用DllPlugin打包,及DllReferencePlugin如何引用dll
    • 构建优化效果
    • SplitChunks
    • Demo源码工程

    DllPlugin 和 DllReferencePlugin 简介

    • DllPlugin:
    • DllReferencePlugin:
    • 通俗点讲:
    • 优点:
      • 提升打包构建速度
      • 公共js文件配置CDN,避免掉重复下载公共库js文件

    如何使用DllPlugin打包,及DllReferencePlugin如何引用dll

    • DllPlugin 配置需要打包第三方库至dll中

    //webpack.dll.config.js
    
    const DllPlugin = require('webpack/lib/DllPlugin');
    const path = require('path')
    const fs = require('fs');
    
    var packageJsonContent = fs.readFileSync(path.resolve(__dirname, '../package.json'));
    var packageJson = JSON.parse(packageJsonContent);
    
    var dependencies = Object.keys(packageJson.dependencies);
    
    module.exports = {
        entry: {
            vendor: dependencies
        },
        output: {
            path: path.resolve(__dirname, '../dist'),
            filename: 'vendor.bundle.js',
            library: 'vendor_lib'
        },
        plugins: [
            new DllPlugin({
                context: __dirname,
                name: 'vendor_lib',
                /* 生成manifest文件输出的位置和文件名称 */
                path: path.resolve(__dirname, '../dist/vendor-manifest.json')
            })
        ],
    }
    
    
    • DllReferencePlugin如何引用dll
    //webpack.config.js 中 plugins添加以下代码
    
    new DllReferencePlugin({
                manifest: require(path.resolve(__dirname, '../dist/vendor-manifest.json'))
    }),
    

    构建优化效果

    Web构建优化


    SplitChunks

    • 简介:Webpack中一个提取或分离代码的插件,主要作用是提取公共代码,防止代码被重复打包,拆分过大的js文件,合并零散的js文件,可配置
    • 配置:
    //webpack.dll.config.js中optimization 中新增如下配置
    splitChunks: {
                chunks: "async",
                minSize: 30000,
                minChunks: 1,
                maxAsyncRequests: 5,
                maxInitialRequests: 3,
                automaticNameDelimiter: '~',
                name: true,
                cacheGroups: {
                    vendors: {
                        test: /[\\/]node_modules[\\/]/,
                        priority: -10
                    },
                    default: {
                        minChunks: 2,
                        priority: -20,
                        reuseExistingChunk: true
                    }
                }
            }
    

    Demo源码工程

    • 访问地址:github.com/aa4790139/w…

    最后:


    参考文献

    • 深入浅出的webpack构建工具---DllPlugin DllReferencePlugin提高构建速度(七)
    • SplitChunksPlugin 使用说明
    • Webpack之SplitChunks插件用法详解
    • webpack 4 Code Splitting 的 splitChunks 配置探索

    起源地下载网 » Web构建优化

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元