webpack一篇就懂(持续更新中)

发布时间:2021-05-16 11:11:08

如何在浏览器端实现模块化



文章目录
如何在浏览器端实现模块化浏览器端的模块化根本原因解决办法常见的构建工具
webpack的安装和使用webpack简介webpack的安装使用
模块化兼容性同模块化标准不同模块化标准最佳实践




前置知识:ES6、模块化、包管理器、git



特点:


    合适的深度:webpack使用层面很简单,但原理层面非常复杂合适的广度:webpack生态圈极其繁荣,有海量的第三方库可以融入到webpack

浏览器端的模块化

问题:


效率问题:精细的模块划分带来了更多的JS文件,更多的JS文件带来了更多的请求,降低了页面访问效率兼容性问题:浏览器目前仅支持ES6的模块化标准,并且还存在兼容性问题工具问题:浏览器不支持npm下载的第三方包

这些仅仅是前端工程化的一个缩影


当开发一个具有规模的程序,你将遇到非常多的非业务问题,这些问题包括:执行效率、兼容性、代码的可维护性可扩展性、团队协作、测试等等等等,我们将这些问题称之为工程问题。工程问题与业务无关,但它深刻的影响到开发进度,如果没有一个好的工具解决这些问题,将使得开发进度变得极其缓慢,同时也让开发者陷入技术的泥潭。


根本原因

思考:上面提到的问题,为什么在node端没有那么明显,反而到了浏览器端变得如此严重呢?


答:在node端,运行的JS文件在本地,因此可以本地读取文件,它的效率比浏览器远程传输文件高的多


根本原因:在浏览器端,开发时态(devtime)和运行时态(runtime)的侧重点不一样


开发时态,devtime:


    模块划分越细越好支持多种模块化标准支持npm或其他包管理器下载的模块能够解决其他工程化的问题

运行时态,runtime:


    文件越少越好文件体积越小越好代码内容越乱越好所有浏览器都要兼容能够解决其他运行时的问题,主要是执行效率问题

这种差异在小项目中表现的并不明显,可是一旦项目形成规模,就越来越明显,如果不解决这些问题,前端项目形成规模只能是空谈


解决办法

既然开发时态和运行时态面临的局面有巨大的差异,因此,我们需要有一个工具,这个工具能够让开发者专心的在开发时态写代码,然后利用这个工具将开发时态编写的代码转换为运行时态需要的东西。


这样的工具,叫做构建工具



这样一来,开发者就可以专注于开发时态的代码结构,而不用担心运行时态遇到的问题了。


常见的构建工具
webpackgruntgulpbrowserifyfis其他
webpack的安装和使用

webpack官网:https://www.webpackjs.com/



webpack简介

webpack是基于模块化的打包(构建)工具,它把一切视为模块


它通过一个开发时态的入口模块为起点,分析出所有的依赖关系,然后经过一系列的过程(压缩、合并),最终生成运行时态的文件。


webpack的特点:


为前端工程化而生:webpack致力于解决前端工程化,特别是浏览器端工程化中遇到的问题,让开发者集中注意力编写业务代码,而把工程化过程中的问题全部交给webpack来处理简单易用:支持零配置,可以不用写任何一行额外的代码就使用webpack强大的生态:webpack是非常灵活、可以扩展的,webpack本身的功能并不多,但它提供了一些可以扩展其功能的机制,使得一些第三方库可以融于到webpack中基于nodejs:由于webpack在构建的过程中需要读取文件,因此它是运行在node环境中的基于模块化:webpack在构建过程中要分析依赖关系,方式是通过模块化导入语句进行分析的,它支持各种模块化标准,包括但不限于CommonJS、ES6 Module
webpack的安装

webpack通过npm安装,它提供了两个包:


webpack:核心包,包含了webpack构建过程中要用到的所有apiwebpack-cli:提供一个简单的cli命令,它调用了webpack核心包的api,来完成构建过程

安装方式:


全局安装:可以全局使用webpack命令,但是无法为不同项目对应不同的webpack版本本地安装:推荐,每个项目都使用自己的webpack版本进行构建

npm install --save-dev webpack webpack-cli



使用

执行打包


如果是全局安装
webpack

如果本地安装webpack,请使用npx运行命令
npx webpack

默认情况下,webpack会以./src/index.js作为入口文件分析依赖关系,打包到./dist/main.js文件中


通过?mode选项可以控制webpack的打包结果的运行环境



webpack --mode=production // 生产环境
webpack --mode=development // 开发环境
webpack --mode=development --watch // 添加文件监听,监听到文件改变时自动重新打包



模块化兼容性

由于webpack同时支持CommonJS和ES6 module,因此需要理解它们互操作时webpack是如何处理的


同模块化标准

如果导出和导入使用的是同一种模块化标准,打包后的效果和之前学*的模块化没有任何差异




不同模块化标准

不同的模块化标准,webpack按照如下的方式处理




最佳实践

代码编写最忌讳的是精神分裂,选择一个合适的模块化标准,然后贯彻整个开发阶段。

相关文档

  • 鼻子黑头多毛孔大怎么办
  • 布隆过滤器 redis_大厂二面:Redis的分布式布隆过滤器是什么原理?
  • 十字路口 不要徘徊
  • 枯莲杂文随笔
  • 植物大战僵尸与类与继承关系
  • 和爱情有关的经典说说大全 爱情说说道出你我心底的话
  • 《草房子》的读后感范文6篇
  • 感人的qq签名94句
  • UML九图之四(序列图)
  • 惊险的梦600字
  • 处女座跟哪个星座最配
  • 销售工作目标责任书的范本
  • 高三学生班级评语
  • weex tabbar底部导航
  • 女性尿道炎不应吃红枣
  • SpringBoot 返回JSON格式数据
  • 微信小程序批量计算两地坐标距离
  • 我的养蚕日记作文
  • 2017三级心理咨询师模拟试题及答案
  • python贪吃蛇代码及详细注释-python实现贪吃蛇游戏源码
  • 手机直播声卡
  • 创业成功案例集
  • 学术会议主持人串词
  • 上海顶级餐厅有哪些?魔都十大顶级餐厅排行
  • 中药降血脂药物
  • 学校清明扫墓日记300字
  • 校园二手交易平台-程序流程图
  • 余华《活着》的读后感
  • 桂花树种在院子里的哪里好
  • 攻城掠地多少级带副将
  • 猜你喜欢

  • 光固化复合树脂在前牙美容修复中的应用
  • 鸡血藤的功效与作用及禁忌鸡血藤什么人不能戴
  • 努力提高职校思想政治课教学质量的实践
  • 成都恒马实验室设备有限公司企业信用报告-天眼查
  • 【三年高考两年模拟】2017年高考物理新课标一轮复*(课件+*题)第六章 机械能 第2讲 动能定理及其应用
  • 四川省经济和信息化委员会办公室关于进一步加强汽车产业运行监测
  • 精选最简单的唐诗宋词
  • 仓管员试用期转正总结
  • 伊旗关于“健康中国流动医院”项目建设实施方案
  • 郑州万顺房产信息咨询服务有限公司企业信用报告-天眼查
  • 上海韵意化妆品有限公司分公司企业信用报告-天眼查
  • 江苏省宜兴市伏东中学2015-2016学年八年级历史上学期期末模拟考试
  • 洪湖市鸿鑫商贸有限公司企业信用报告-天眼查
  • 2020人力资源大学生实习报告五篇
  • (2019苏教)版小学科学二年级上册:全册整套教案(新教材)精品
  • 政治经济学教学中存在的问题及改进措施
  • 2019(人教新课标)一年级语文上册《一去二三里》课件(共41张ppt)教育精品.ppt
  • QSA- Intel Checklist EICC- ICT Self-Ass Questionaire)
  • 首都师范大学2011-2012教育学基础期末试卷
  • 基于新会计准则的《基础会计》课程教学改革思考
  • 京东商家后台经常性打不开
  • 人大微观经济学课件第7章 不完全竞争的市场
  • [K12学*]二年级数学上册 六测量教案2 北师大版
  • 初中春节手抄报图片大全简单又漂亮
  • 最新人教版高中英语必修四Unit_3_A_taste_of_English_humour知识点精品ppt课件
  • 黄酒和牛奶能一起喝吗
  • 【精品文档】暑假物流实习报告范文-word范文 (4页)
  • 公司行政部门工作总结范文2018与公司行政部门年终工作总结范文汇编
  • 建筑工程混凝土后浇带的设置及施工技术研究
  • 留守儿童心理健康教案教学文案
  • (完审版)Esteem高档饮品澳洲姜汁饮料饮品市场启动策划案
  • 小学美术奇异(201908)
  • 最新MBA组织行为学案例资料
  • 初中作文 幸福作文800字
  • remove.bg - 自动抠图、一键去除图片背景的免费在线工具
  • 丽江古城的说明文作文
  • 书香浸童年作文600字
  • 5-羟色胺转运体在肠道疾病中的研究进展
  • 最新-证券市场中羊群行为的比较研究 精品
  • 最新-四中全会公报系列评论解读——依法执政是法治工作的核心 精品
  • 十八招让你运气越来越好
  • 电脑版