这是我参与[第五届青训营]伴学笔记创作活动的第2天。各种可以提高开发效率新思想和框架被发明,因源代码无法直接运行,必须通过转换后才可以正常运行。Webpack是一个打包模块化JavaScript的工具,在Webpack里一切文件皆模块,通过Loader转换文件,通过Plugin注入钩子,最后输出由多个模块组合成的文件。Webpack专注于构建模块化项目。一切文件:JavaScript、CSS、scss、图片、模板,在Webpack眼中都是一个个模块,这样的好处是能清晰的描述出各个模块之间的依赖关系,以方便Webpack对模块进行组合和打包。经过Webpack的处理,最终会输出浏览器能使用的静态资源.Webpack的优点是:专注于处理模块化的项目,能做到开箱即用一步到位;通过Plugin扩展,完整好用又不失灵活;使用场景不仅限于Web开发;社区庞大活跃,经常引入紧跟时代发展的新特性,能为大多数场景找到已有的开源扩展;良好的开发体验。只要理解了其中几个核心概念,就能随心应手地使用它。Entry:入口,Webpack执行构建的第一步将从Entry开始,可抽象成输入。Module:模块,在Webpack里一切皆模块,一个模块对应着一个文件。Webpack会从配置的Entry开始递归找出所有依赖的模块。Chunk:代码块,一个Chunk由多个模块组合而成,用于代码合并与分割。Loader:模块转换器,用于把模块原内容按照需求转换成新内容。Plugin:扩展插件,在Webpack构建流程中的特定时机注入扩展逻辑来改变构建结果。Webpack启动后会从Entry里配置的Module开始递归解析Entry依赖的所有Module.在整个流程中Webpack会在恰当地时机执行Plugin里定义的逻辑。