1、webpack4号称是0配置,于是我就只设置了entry、resolve、output、module->rules之类的属性,结果通过webpack-bundle-analyzer跑出来发现只把懒加载模块的公共代码抽离出来了。

查询官方文档发现optimization.splitChunks.chunks默认为async,只从异步chunks里提取模块,因此需要设置成all

2、设置完mode,发现有一个entry在调试环境和生产环境下编译出来的文件数量不一样,百思不得其解

问题一定出在不同环境下的默认设置上,翻了翻源代码才将问题逐渐定位到optimization.splitChunks.minSize上,于是把官方文档里splitChunks的配置写在了webpack.config.base.js里,确保调试环境和生产环境下的chunk分割策略完全一致

3、由于项目使用koa2,使用web-dev-server的话,在调试的时候需要开两个窗口启两个服务,所以想找个中间件来实现HMR,选择了koa-webpack,按照文档设置好后发现编译出来的文件结果和直接用webpack编出来的结果又不一样

看了看koa-webpack的源码,先将问题定位在webpack-hot-client上,尝试将这个插件关闭(参考设置)后编译结果正常。最后定位到webpack-hot-client的这项设置上,将allEntries设为ture即可。

总结

在升级过程中还出现了好几处低级错误

  • 使用vue-router懒加载时,提前import进来了需要懒加载的组件,导致懒加载失效且页面无法显示
  • 懒加载语法写错了

每当出现这种明明根据文档一步一步来设置,最后却因为一些低级错误而出现很奇怪的结果时,宁愿在网上漫无目的的搜集一大堆他人的例子来无脑尝试也不愿意花时间在文档、源码的解读与理解上,容易在不断的尝试里消磨时间并积累挫败感最终决定回避问题。

webpack4工具链升级排坑记录的更多相关文章

  1. Charles 抓包工具安装和采坑记录

    Charles 抓包工具安装和采坑记录 网络抓包是解决网络问题的第一步,也是网络分析的基础.网络出现问题,第一步肯定是通过抓包工具进行路径分析,看哪一步出现异常.做网络爬虫,第一步就是通过抓包工具对目 ...

  2. 多页应用 Webpack4 配置优化与踩坑记录

    前言 最近新起了一个多页项目,之前都未使用 webpack4 ,于是准备上手实践一下.这篇文章主要就是一些配置介绍,对于正准备使用 webpack4 的同学,可以做一些参考. webpack4 相比之 ...

  3. 初次见面C#排坑记录

    排一次开发C#遇到的坑,同时说一下自己对C#中文件夹构建方式的体会. 一个开发Java的人留下了痛苦的泪水,变量命名规则不一样,连括号打的都不一样,

  4. hyperledger explorer 结合 fabric1.4 搭建 区块链浏览器 踩坑记录

    博主通过这篇博客的步骤搭建区块链浏览器:https://blog.csdn.net/qq_32675427/article/details/99946945 进行到下面这一步时出现各种异常,浪费了博主 ...

  5. mybatis 排坑记录

    1. mapper xml resultMap 中定义 property 时不能出现空格 否则会出现反射错误,找不到 do 对应的 set 方法

  6. spring-cloud /pause 平滑升级 踩坑记录

    0.客户端添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  7. 使用Windows下的git工具往github上传代码 踩坑记录

    使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...

  8. LFS(Linux From Scratch)构建过程全记录(五):交叉工具链的构建

    写在前面 本文将详细讲述如何构建工具链 前置知识 在LFS-BOOK中,我们需要学习一些关于"交叉编译"的内容,详见书本 安装Binutils-2.39 我们cd到sources文 ...

  9. manjaro xfce 18.0 踩坑记录

    manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...

随机推荐

  1. MySQL按时间查找

    RecentMutations表的结构如图,现在的需求是需要查找到2017年09月08日前10天的变体总数: SQL语句:SELECT SUM(MutantNumber) FROM RecentMut ...

  2. Leetcode 之 Valid Triangle Number

    611. Valid Triangle Number 1.Problem Given an array consists of non-negative integers, your task is ...

  3. pandas(八)重塑和轴向旋转

    重塑层次化索引 层次化索引为DataFrame的重排提供了良好的一致性操作,主要方法有 stack :将数据的列旋转为行 unstack:将数据的行转换为列 用一个dataframe对象举例 In [ ...

  4. pycharm修改配置

    恢复pycharm的初始设置

  5. VSCode代码格式化自动换行问题

    打开VS设置,添加如下代码 "vetur.format.defaultFormatter.html": "js-beautify-html", "ve ...

  6. JS与Jquery 中的extend用法不同

    1, Jquery //jQuery 应用扩展   jQuery.extend({                  // 定义setApDiv     setApDiv:function () {  ...

  7. app自动化测试-appium

    一.环境准备(windows) 1.安装Microsoft .NET Framework 4.5 双击运行如下文件:net4.5.1.exe 2.安装node-v6.11.4-x64.msi 双击运行 ...

  8. C\C++与Java中的static关键字

    C\C++里面的static: 面向过程的static: 在c和c++面向过程的设计里,在全局变量前加上static关键字则可将该变量定义为一个静态全局变量,比如: static int a; 那么c ...

  9. LINUX系统运行查看

    1.查看内存使用情况 free -m 2.查看内存,cpu等使用情况排序,使用ps -aux命令 ps -aux --sort=+rss :按内存升序排列 ps -aux --sort=-rss :按 ...

  10. Intellij IDEA生成serialVersionUID

    默认情况下Intellij IDEA不会提示继承了Serializable接口的类生成serialVersionUID的警告.如果需要生成serialVersionUID,就要在Preferences ...