webpack抽离公共代码和热更新

抽离公共代码

module.exports里配置属性对象

optimization:{ //执行是自上而下的
    splitChunks:{ //分割代码块
      cacheGroups:{ //缓存组
        // 抽离自定义模块
        common:{ //抽离出来代码自动创建在名为common开头的文件中
          chunks: 'initial',  //从入口开始提取代码
          minSize:0, //共用字节大于0即抽离
          minChunks:2 //引用2次就打包
        },
        // 抽离第三方库
        vendor:{
          priority:1, // 抽离的优先级,默认为0
          test: /node_modules/,
          chunks: 'initial',  //从入口开始提取代码
          minSize:0, //共用字节大于0即抽离
          minChunks:2 //引用2次就打包
        }
      }
    }
}

模块热更新

全局更新

可以使用module.exportswatch``watchOptions属性进行配置

// 保存后自动打包
  watch: true,
  watchOptions: {
      poll: 1000, // 每1s询问是否更新
      aggregateTimeout: 500, //防抖,输入过程后500ms后进行打包
      ignored: '/node_modules'
  },
局部更新

module.exports里配置属性对象

devServer: {
    //指定被访问html页面所在目录的,即http://localhost:8080/home.html可以访问到。。
    contentBase: path.resolve(__dirname, 'dist'),
    // 热更新
    hot: true
}

引用webpack内置插件

    // 打印更新的模块路径
    new webpack.NamedModulesPlugin(/\.\/locale/,/moment/),
    // 热更新插件
    new webpack.HotModuleReplacementPlugin(),

这么用以后,发现一个很奇怪的问题,抽离公共模块和热更新同时使用,打包不报错,运行devServe不报错,但是js文件不执行了??为什么呢?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,550评论 1 32
  • 目录第1章 webpack简介 11.1 webpack是什么? 11.2 官网地址 21.3 为什么使用 web...
    lemonzoey阅读 1,771评论 0 1
  • webpack 是什么? 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(mo...
    IT老马阅读 3,402评论 2 27
  • 说在前面:这些文章均是本人花费大量精力研究整理,如有转载请联系作者并注明引用,谢谢本文的受众人群不是webpack...
    RockSAMA阅读 7,016评论 2 7
  • 前言: 我最近需要整理一下 webpack 这个前端构建工具的相关知识,希望对前端工程化的和模块化有更多的理解,我...
    Joah_l阅读 6,381评论 0 9