webpack

164 阅读3分钟

webpack

webpack静态模块打包器

  • 学习webpack之前我们要先安装好node

  • 项目准备:webpack是用来对已有项目进行打包,所以一定是在某个项目下进行应用打包 (没有package.js就先npm init)

  • 在当前项目中安装并使用webpack

安装webpack

安装webpack: npm i webpack webpack-cli -D
验证webpack是否安装成功 npx webpack -v

什么是webpack

基本定义:webpack是一个打包模块化JavaScript的工具,在webpack里一切文件皆模块,通过loader转换文件,通过插件注入钩子,最后输出由多个模块组成的文件,webpack专注构建模块化项目,webpack可以看做是模块打包机;他做的事情是分析你的项目结构,找到JavaScript模块以及其他的一些浏览器不能直接运行的拓展语言,并将其打包为合适的格式以供浏览器使用

webpack的优点

  • 专注与处理模块化的项目,又能做到开箱即用,一步到位

  • 通过插件扩展,完整好用又不失灵活

  • 使用场景不局限于web开发

  • 社区庞大活跃,经常引入紧跟时代发展的新特性,能为大多数创建已有的开源扩展

  • 提供了更好的开发体验

webpack的构建流程

webpack的运行流程是一串行的过程,从启动到结束会依次执行以下流程

  • 初始化参数:从配置文件和Shell语句中读取与合并参数,最终得出参数

  • 开始编译:用上一步得到参数初始化编译器对象,加载所有配置的插件,执行对象的run方法开始执行编译

  • 确定入口:根本配置中的entry找出所有出口文件

  • 编译模块:从入口文件触发条用所有配置的装载机对模块进行翻译,再找出该模块依赖的模块,在第归本步骤知道所有入口依赖的文件都经过了本步骤的处理

  • 完成模块编译:在经过第4步使用装载机翻译完所有模块后,得到了每个模块被翻译后的最终内容及他们之间的依赖关系

  • 输出资源:根据入口和模块之间的依赖关系,组装成一个个包含多个模块的Chunk,再把每个Chunk转换成一个单独的文件加入到输出列表,这步是可以修改输出内容的最后机会

  • 输出完成:在确定好输出内容后,根据配置确定输出路径和文件名,把文件写入文件系统,在以上过程中,在以上过程中,webpack会在特定的时间点广播出特定的时间点广播出特定的事件,插件在监听到感兴趣事件后执行特定的逻辑,并且插件可以调用webpack提供的api改变webpack的运行结果

每日鸡汤

天将降大任于是人也,必先苦其心志,劳其筋骨

不登高山,不知天之高也;不临深溪,不知地之厚也。