当前位置: 首页 > news >正文

前端工程化之:webpack1-3(模块化兼容性)

一、模块化兼容性

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

二、同模块化标准

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

CommonJS:

// 导出
module.exports = {a: 1,b: 2,c: 3
}// 导入
require("./a")// 导入的结果
{a: 1,b: 2,c: 3
}

ES6 Module: 

// 导出
export var a = 1;
export var b = 2;
export default 3;// 导入1
import * as obj from "./a"// 导入结果1
{a:1,b:2,default:3
}// 导入2
import c from "./a"// 导出结果2
3

三、不同模块化标准 

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

ES6 Module export + CommonJS require: 

// 导出
export var a = 1;
export var b = 2;
export default 3;// 导入
require("./a")// 导入结果
{a:1,b:2,default:3
}

CommonJS export + ES6 Module import:

// 导出
module.exports = {a: 1,b: 2,c: 3
}// 导入1
import * as obj from "./a"
import c  from "./a"// 导出结果
{a:1,b:2,c:3
}

四、最佳实践

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

绝大部分第三方库,使用的是 CommonJS 的方式导出。 

http://www.lryc.cn/news/288555.html

相关文章:

  • JDK8新特性(一)
  • java实现ftp协议远程网络下载文件
  • 深入浅出理解目标检测的NMS非极大抑制
  • HbuilderX报错“Error: Fail to open IDE“,以及运行之后没有打开微信开发者,或者运行没有反应的解决办法
  • 【Go 快速入门】基础语法 | 流程控制 | 字符串
  • 腾讯云轻量应用Ubuntu服务器如何一键部署幻兽帕鲁Palworld私服?
  • Redis的SDS你了解吗?
  • C#中常见的软件设计模式及应用场景
  • 字符串相关函数和文件操作
  • 【c++学习】数据结构中的栈
  • 新建react项目,react-router-dom配置路由,引入antd
  • Transformer and Pretrain Language Models3-6
  • Linux系统中编写bash脚本进行mysql的数据同步
  • 光耦驱动继电器电路图大全
  • 【AI量化分析】小明在量化中使用交叉验证原理深度分析解读
  • 2024最新版Visual Studio Code安装使用指南
  • 接口请求重试八种方法
  • 【Linux 基础】常用基础指令(上)
  • 【RT-DETR有效改进】EfficientFormerV2移动设备优化的视觉网络(附对比试验效果图)
  • 《动手学深度学习(PyTorch版)》笔记4.4
  • Linux/Academy
  • windows .vscode的json文件配置 CMake 构建项目 调试窗口中文设置等
  • uniapp canvas做的刮刮乐解决蒙层能自定义图片
  • 利用SPI,结合数据库连接池durid进行数据服务架构灵活设计
  • 自动驾驶的决策层逻辑
  • 排序算法——希尔排序算法详解
  • Docker 容器内运行 mysqldump 命令来导出 MySQL 数据库,自动化备份
  • 【Java万花筒】数字信号魔法:Java库的魅力解析
  • 面试高频知识点:2线程 2.1 线程池 2.1.2 JDK中常见的线程池实现有哪些?
  • Azure Private endpoint DNS 记录是如何解析的