未能加载文件或程序集或它的某一个依赖项_手写一个miniwebpack

前言
之前好友希望能介绍一下 webapck 相关的内容,所以最近花费了两个多月的准备,终于完成了 webapck 系列,它包括一下几部分:
webapck 系列一:手写一个 JavaScript 打包器
webpack 系列二:所有配置项
webpack 系列三:优化 90% 打包速度
webpack 系列四:优化包体积
webapck 系列五:优化首屏加载时间与页面流畅度
webapck 系列六:构建包分析
webapck 系列七:详细配置
webapck 系列八:手写一个 webapck 插件(模拟 HtmlWebpackPlugin 的实现)
webapck 系列九:webapck4 核心源码解读
webapck 系列十:webapck5 展望
所有的内容之后会陆续放出,如果你有任何想要了解的内容或者有任何疑问,可以公众号后台留言提问。
作为一个前端开发人员,我们花费大量的时间去处理 webpack、gulp 等打包工具,将高级 JavaScript 项目打包成更复杂、更难以解读的文件包,运行在浏览器中,那么理解 JavaScript 打包机制就很必要,它帮助你更好的调试项目、更快的定位问题产生的问题,并且帮助你更好的理解、使用 webpack 等打包工具。
在这章你将会深入理解 JavaScript 打包器是什么,它的打包机制是什么?解决了什么问题?如果你理解了这些,接下来的 webpack 优化就会很简单。
一、什么是模块
一个模块可以有很多定义,但我认为:模块是一组与特定功能相关的代码。它封装了实现细节,公开了一个公共API,并与其他模块结合以构建更大的应用程序。
所谓模块化,就是为了实现更高级别的抽象,它将一类或多种实现封装到一个模块中,我们不必考虑模块内是怎样的依赖关系,仅仅调用它暴露出来的 API 即可。
例如在一个项目中:
