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. 用仿ActionScript的语法来编写html5——第六篇,TextField与输入框

    一,对比1,html5中首先看看在html5的canvas中的文字显示 var canvas = document.getElementById("myCanvas"); var ...

  2. Git学习笔记-精简版

    注意本文参考廖雪博客: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 一:Git ...

  3. java多线程总结(一)

    在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口. 对于直接继承Thread的类来说,代码大致框架是: 1 2 3 4 5 6 7 8 9 10 11 ...

  4. Redis——安装

    Linux下面: 下载安装包: wget http://download.redis.io/releases/redis-4.0.10.tar.gz 解压: tar xzf redis-4.0.10. ...

  5. LeetCode:简化路径【71】

    LeetCode:简化路径[71] 题解参考天码营:https://www.tianmaying.com/tutorial/LC71 题目描述 给定一个文档 (Unix-style) 的完全路径,请进 ...

  6. hadoop18---socket实现rpc

    客户端: package cn.itcast_04_reflect.socket; import java.io.BufferedOutputStream; import java.io.Buffer ...

  7. jQuery UI 自定义样式的日历控件

    在线演示 本地下载

  8. computeIfAbsent

    // java8之前,若从map中根据key获取value,如果key不存在,则添加,这一系列操作可以是下面的操作 Object key = map.get("key"); if ...

  9. 函数:生成1-n的随机数组,

    方法很笨,不过可行: #include <stdio.h> /** 功能:获取一个1-n的随机数数组,这些随机数都互不相同 ** 入参:n-表示最大随机数: *randArray -用于储 ...

  10. 字符串的hash匹配

    如果要比较字符串是否相等,首先想到的是KMP算法,但是hash更加简洁易于编写,hash的目的是把一串字符转化成一个数字,用数字来比较是否相等.我让mod=912837417 Base=127,防止h ...