趁着离职后,gap一段时间,好好梳理下自己的技术栈和开发时候用到的知识,先从熟悉又陌生的Webpack开始吧,为什么说是"熟悉又陌生"呢,自然是在工作中见得多,但是其实实际上手去配置的机会少之又少,就以本书为引子深入学习一番
第1章 Webpack简介
什么是Webpack
Webpack其实就是一个JS模块打包的工具。
什么是打包?
解决模块之间的依赖,把各个模块按照特定规则和顺序组成一块,并最终合并为一个或多个JS文件。这个过程就叫做打包。
有什么意义呢?
模块化开发
Javascript在过去很长时间中并没有模块的概念,那么随着后续发展,如果用script标签引入多个文件到页面中的话,会有很多缺点:
- 手动维护JavaScript加载顺序,script之间的依赖关系通常是隐式的,除了添加注释,很难清晰的表明依赖关系
- 每一个script文件需要向服务器请求一次静态资源
- 每个script标签的顶层作用域为全局作用域,如果不加处理,会污染全局作用域
而采用模块化开发后,解决了上述问题:
- 通过导入和导出明确模块之间的依赖关系
- 借助工具进行打包,只需要加载合并后的资源文件,减少网络开销
- 模块之前作用域隔离
性能优化
Webpack 提供了多种性能优化手段,如代码分割(Code Splitting)、懒加载(Lazy Loading)、树摇(Tree Shaking)等,以减少最终打包文件的大小并提高应用加载速度。
资源处理
除了 JavaScript,Webpack 还可以处理 CSS、图像、字体等静态资源,通过相应的加载器(loaders)将它们打包在一起。
社区支持
Webpack 拥有丰富的插件生态系统和庞大的社区支持,几乎可以扩展和定制任何构建过程中的需求