本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/06/04/webpack%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9D%97/
摘要
本文主要讲述了:
- 为什么需要打包工具
- webpack 中的模块
- 如何打包
- webpack 中的 module
正文
在模块化编程中,开发者将程序解耦为离散的功能块,这种功能块就被称作模块。
模块化编程的好处是:就像搭积木一样,可以通过引用不同的模块来完成特定的功能。让代码结构更清晰,让开发、测试和维护更加方便。
nodejs 自建立之初就支持模块化编程。
但浏览器中的 JavaScript 模块化发展缓慢。
为什么需要打包工具
模块化虽然有许多的优点,但在浏览器中情况有些特殊。
假如不打包,使用 n 个模块就要进行 n 次网络请求,高并发对于服务器来说可不是一件好事。
将所有的模块打包成 1 个,让请求次数减少到 1 次,减少并发,这就是打包工具存在的意义。
webpack 中的模块
在 webpack 中,有多种方式可以用来表述模块的依赖关系。例如:
- ES2015 中的
import
- CommonJS 中的
require()
- CSS 中的
url()
- HTML 中的
src
- ……
换言之,在 webpack 中,但凡用上述方式引用的文件和数据都被视作模块。
如何打包
webpack 中存在一个名为entry
(入口)的概念,webpack 从entry
着手,顺藤摸瓜,就能分析出整个项目的依赖图。
webpack 中的 module
webpack 把一切资源都视作模块,但 webpack 本身只能处理 JavaScript 和 JSON。
loader 将非 JavaScript 模块转换为 JavaScript 模块。
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/06/04/webpack%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9D%97/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/06/04/webpack%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9D%97/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。