webpack是什么
官网定义
webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具
似乎不太好理解,但是这也是正常现象,很多官网的定义在追求严谨和准确的表达的同时,不得不牺牲掉理解的方便性
现代 JavaScript 应用程序
以前的前端应用程序是一个项目文件夹下包含html,js,css,图片等静态资源,他们之间相互引用,可以运行在浏览器中展示页面内容,但是开发效率比较慢。
现在的前端应用程序,基于css出现了预处理器scss、less,基于js出现了vue、react等等,这些都是日常开发中不可或缺的,但是在我们的宿主环境(浏览器)根本就不认识这些东西,不能直接运行;“开发效率提高了,但是不能运行了”,gulp、rollup、webpack等打包工具应运而生;
模块打包
一个包含源码的包packageA,经过打包工具生成了另外一个包packageA',打包后的packageA'可以放在服务器上,通过浏览器访问,并且能正常渲染和交互操作;
打包工具通过开发人员配置的信息,处理源码,生成目标文件
自己的理解
webpack是一个打包工具,把宿主环境(浏览器、node)不能解析的使用高级语法编写的前端应用程序,翻译成宿主环境(浏览器、node)能运行的代码
webpack提供了哪些关键功能
本地服务器
假设没有本地服务器,我们的开发流程是很麻烦的,流程图大致如下:
有本地服务器,可以大大的简化我们的开发流程,流程图大致如下:
热更新
假设只有本地服务器,没有热更新,那么每次代码开发完成,编译结束,需要手动刷新一下页面,流程图如第二张图
sourceMap
方便开发环境,调试代码;生产环境为了优化体积,需要关闭,sourceMap有很多配置,不同的配置定位代码的精确度不同
打包
wepack的核心功能,后续的文章会解析,打包相关的api、配置信息、关键概念