zoukankan      html  css  js  c++  java
  • webpack性能优化-dll

    使用dll技术, 对某些库 (第三方库:jquery, react, vue...)进行单独打包,  (优化重复打包)

    需要一个配置文件  webpack.dll.js

    const {resolve} = require('path')
    const webpack = require('webpack')
     
    module.exports = {
        entry:{
            jquery:['jquery'] //最终打包生成的[name],可以打包多个库,vue,react..
        },
        output:{
            filename:'[name].js',//文件名
            path:resolve(__dirname,'dll'),//文件夹
            library:'[name]_[hash]' //打包的库里面向外暴露出去的内容命名
        },
        plugins:[
            new webpack.DllPlugin({ //打包生成一个manifest.json,和jQuery映射关系
                name:'[name]_[hash]', //映射库的暴露的内容名称
                path:resolve(__dirname,'dll/manifest.json') //输出文件路径
            })
        ],
        mode:'production'
    }

       运行webpack.dll.js( npx  webpack  --config   webpack.dll.js )

      可以将 jQuery 单独打包,并生成一个 manifest.json 文件,提供和 jQuery 的映射关系

    image

    打包生成 jQuery.js

    生成 mainfes.json

    image

    可以直接在  index.js 中 引入 jQuery 库

    image

    运行webpack.config.js,

    很明显build,打包了jquery文件

    image

    但是,webpack 配置中需要忽略 manifest 中的 库的打包,避免重复打包,需要 webpack 内置的插件  DllReferencePlugin

    image

    webpack 重新构建打包后,就不会对 jQuery 打包

    image

    但是不打包jquery,  页面上就没有jquery这个资源

    image

    使用 cnpm i add-asset-html-webpack-plugin –D 插件

    在页面就可以使用 dll 打包的 jquery

    image

    image

    再次构建,页面中 引入了 使用 dll 打包的 jQuery,

    image

  • 相关阅读:
    合并、媒体查询
    混入、命名空间(less)、继承
    函数(内置函数 和 自定义函数)
    运算、单位、转义、颜色
    选择器嵌套、伪类嵌套、属性嵌套(只在Sass中)
    注释、变量、插值、作用域
    二路归并排序java实现
    堆排序Java实现
    和为S的连续正数序列——牛客网(剑指offer)
    transient 与 volatile 笔记
  • 原文地址:https://www.cnblogs.com/cl1998/p/13069928.html
Copyright © 2011-2022 走看看