模块(Modules)

模块化编程中,开发者将程序分解成离散功能块(discrete chunks of functionality),并称之为模块

每个模块具有比完整程序更小的接触面,使得校验、调试、测试轻而易举。

精心编写的模块提供了可靠的抽象和封装界限,使得应用程序中每个模块都具有条理清楚的设计和明确的目的。

Node.js 从最一开始就支持模块化编程。

然而,在 web,模块化的支持正缓慢到来。

在 web 存在多种支持 JavaScript 模块化的工具,这些工具各有优势和限制。

webpack 基于从这些系统获得的经验教训,并将模块的概念应用于项目中的任何文件。

什么是 webpack 模块

对比 Node.js 模块,webpack 模块能够以各种方式表达它们的依赖关系,几个例子如下:

  • ES2015 import 语句
  • CommonJS require() 语句
  • AMD define 和 require 语句
  • css/sass/less 文件中的 @import 语句
  • 样式(url(...))或 HTML 文件(<img src=...>)中的图片链接(image url)
webpack 1 需要特定的 loader 来转换 ES 2015 import,然而通过 webpack 2 可以开箱即用。

支持的模块类型

webpack 通过 loader 可以支持各种语言和预处理器编写模块。

loader 描述了 webpack 如何处理 非 JavaScript(non-JavaScript) 模块,并且在bundle中引入这些依赖

webpack 社区已经为各种流行语言和语言处理器构建了 loader,包括:

总的来说,webpack 提供了可定制的、强大和丰富的 API,允许任何技术栈使用 webpack,保持了在你的开发、测试和生成流程中无侵入性(non-opinionated)。

有关完整列表,请参考 loader 列表 或 自己编写

最新文章

  1. 创建 VXLAN - 每天5分钟玩转 OpenStack(111)
  2. [原创翻译]Protocol Buffer Basics: C#
  3. &quot;此站点已经禁用应用程序&quot;在sharepoint 2013中通过v2013部署app提示该错误
  4. 如何用极路由+OpenWrt+RTL电视棒搭建一台SDR服务器,并隐秘地捕获和传输数据
  5. MySQL 服务无法启动。服务没有报告任何错误。
  6. 01分数规划poj2728(最优比例生成树)
  7. 文件MD5校验
  8. Android学习准备
  9. 【BZOJ 3190】 3190: [JLOI2013]赛车 (半平面交)
  10. chrome插件background.js 和 popup.js 交互
  11. epoll函数及三种I/O复用函数的对比
  12. Hello Word!
  13. 关于UITextfield弹出键盘解决方案
  14. Android RecyclerView体验(一)- 简介
  15. WERTYU(getchar()用法)
  16. 整车CAN网络介绍
  17. SQL alwayson 辅助接点查询统计信息“丢失”导致查询失败
  18. POJ1860(Currency Exchange)
  19. android 手机拍照返回 Intent==null 以及intent.getData==null
  20. Sandcastle方法生成c#.net帮助类帮助文档chm

热门文章

  1. C-基础:C语言为什么不做数组下标越界检查
  2. 搜索 || DFS || POJ 1321 棋盘问题
  3. HTML基础(三)图像和超链接
  4. Oracle中的for和while循环
  5. oc学习
  6. ios之coretext
  7. Properties类操作.properties配置文件方法总结
  8. CentOS7安装Tomcat9并配置
  9. 微信小程序的坑之wx.miniProgram.postMessage
  10. Canvas标签