
webpack的作用
发布日期:2021-05-08 14:26:51
浏览次数:21
分类:精选文章
本文共 968 字,大约阅读时间需要 3 分钟。
javascript在浏览器端步入模块化时代以后,产生了下列的问题:
- 性能和效率的问题。由于模块化的出现,致使需要功能模块被细分,从而导致js文件变多(依赖变多)。进而,当引入一个完整的功能模块的时候,浏览器会加载更多的js文件。浏览器加载js文件是通过网络请求的方式的获取的,如果一个模块的依赖很多的话,就会发生很多的网络请求去获取js文件,导致了多余的网络开销,间接的影响了性能。
- 兼容性问题。浏览器目前的模块化标准只支持ES6,AMD,CMD,并不支持commonJS的模块化标准,进而导致使用commonJS模块化标准的包,浏览器是不支持的。假如你希望通过npm去安装一个包给浏览器使用,很遗憾的是,浏览器很多时候用不了,因为你安装的那个包很可能就是通过commonJS的模块化标准导出的,浏览器不支持,这就让人很郁闷了。
前端构建工具就是为了解决以上问题而诞生,那么构建工具是如何解决这些问题的呢?
- 通过打包和压缩的方式,把多个文件,通过内部逻辑分析和算法,合并少量文件,减少了文件的数量,并且把文件内部不必要的空格和符合去掉,把变量的长度用更简短的字母替换,进而减少了文件的体积,还提高了一定的安全性。当浏览器加载的文件数量和体积都变小了,效率和性能自然就提高了。
- 有了webpack构建工具之后,可以随意使用ES6或者commonJS的方式导入模块,构建工具会自行分析你的导入方式,而给你返回对应的结果,以下是四种情况:
// 相同的标准1.使用commonJS的标准导入导出2.使用ES6的标准导入导出// 不同的标准1.ES6的标准导出,使用commonJS的方式导入://a.js:module.exports = { a:1}//b.js:import all from './a.js'import { a } from './a.js'console.log(all) // { a:1 }console.log(a) // 12.commonJS的方式导出,ES6的方式导入://a.jsexport const a = 1export default 2//b.jsconst all = require('./a.js')console.log(all) // { a:1, default:2 }
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月09日 05时20分10秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C# 规范建议
2021-05-09
C语言+easyX图形库的推箱子实现
2021-05-09
反汇编-流程控制语句-2-循环控制语句分析
2021-05-09
调试vs2019代码的流程
2021-05-09
游戏外挂基础-概述
2021-05-09
脱壳与加壳-加壳-6-代码实现加密导入表
2021-05-09
Typora配置PicGo时,提示Failed to fetch
2021-05-09
ASP.NET CORE MVC 实现减号分隔(Kebab case)样式的 URL
2021-05-09
SQL优化 MySQL版 -分析explain SQL执行计划与笛卡尔积
2021-05-09
bcolz的新操作
2021-05-09
Linux的s、t、i、a权限(转)
2021-05-09
zmq的send
2021-05-09
C++中的delete加深认识
2021-05-09
windows消息机制(转)
2021-05-09
STL笔试面试题总结(干货)(转)
2021-05-09
XML 和 HTML 之间的差异
2021-05-09
qt中moc的作用
2021-05-09
阿里钉钉面试题
2021-05-09
华为社招笔试
2021-05-09
C++中找资源或者函数的方法
2021-05-09