zoukankan      html  css  js  c++  java
  • webpack5的简单优化

    1. 各种loader

    file-loader, 资源文件迁移

    url-loader 文件转化成base64 url

    css-loader 解析css

    style-loader 生成style, 嵌入header

    cleanPkugin变成 output:{ clean:true }

    2. webpack-dev-server与hmr 

    // 一般来讲webpack-dev-server会有live load, webpack-dev-server是把资源打包到内存。

    意思是说 有文件发生改变时, 全项目自动更新, webpack-dev-server内部配了websocket, 所以可以与页面交互,全局更新。这样的问题是比如input的内容填过了, 一刷新, 就没了。

    hmr是基于webpack-dev-server的配置, 只对影响的文件更新

    dev-server {

      port:3000,

    hot:true,

    hotOnly: true

    }

    所以对于某些组件, 可以这样写

    import popup from ‘./popup.js’

    if(module.hot) {

      module.hot.accept('./page2.js', ()=>{

        document.click = popup

      })

    }

    3.在production和development的配置

    webpack-merge负责配置的merge

    mode:Prouction

    其实内部是配置了, optimision:  { mimifiy: true }, devtool:‘’eval‘’等

    4.webpack的优化策略,

    4.1  minicssExtendPlugin,将css抽出, 替换style-loader, 写入loader, 然后在optimision: {  minior: new CssMiniPlugin() }

    4.2  source-map 用来定位错误, 映射到源代码, 默认配置是eval. 开发环境是映射 。可以》eval-cheap-sopource-map

    5. code-splitting

    都依赖axios的模块

    entry: {

      'list': {

        file: './src/list.js'.

        dependOn: 'axios'

           },

      'index': {

        

        file: './src/index.js'.

        dependOn: 'axios'

      },

      axois: 'axios'

    }

    output: {

    name: [name].js

      }

    最终会生成三个文件, 作为代码分割

    6. 懒加载和预加载

    借wenpack ,可以懒加载

    document.onlick = async ()=>{

      const  a = await import ‘a.js’

    }

    预加载的原理是,<link  preload as='script' />

    预加载是利用空闲时间加载

    用法是

    document.onlick = async ()=>{

    /**webpackChunkName a webpackPreFetch=true*/

      const  a = await import ‘a.js’

    }

    tree-shaking

    满足mode=production

    和esm模块, 也就是有export这样的 export const a = 1;

  • 相关阅读:
    如何在Element 使用正则表达式校验
    Vs Code 微信小程序 神兵利器合集
    分享CSS公共类库(能在项目快捷使用CSS类)
    Element+Axios上传图片 OR 文件
    两种简洁的数组对象去重姿势
    VScode 格式化代码保存时使用ESlint修复代码
    如何在linux上部署vue项目
    Vue 2.x 3.x 配置项目开发环境跟线上环境
    在Vue文件中引入外部URL链接
    博客目录
  • 原文地址:https://www.cnblogs.com/connie313/p/14826652.html
Copyright © 2011-2022 走看看