Node.js遵循CommonJs规范,核心思想允许require方法来同步加载所需依赖的其他模块,通过exports或者module.exports来导出需要暴露的接口
优点:服务端模块便于复用
缺点:同步加载模块不适合在浏览器环境中,同步意味着阻塞加载,浏览器资源是异步加载的,不能非阻塞的并行加载多个模块
AMD:Asynchronous Module Definition规范其实是一个主要接口define(id?,dependencies?,factory);它要在声明模块的时候指定所有的依赖dependencies,并且还要当作形参传到factory中,对于依赖的模块提前执行。
优点:适合在浏览器环境中异步加载模块,并行加载多个模块
缺点:提高开发成本,代码阅读书写比较困难,模块定义方式语义不畅,不符合通用的模块化思维方式,一种妥协的实现
实现:RequireJS
curl
CMD:规范,与CommonJS相似,缺点模块加载逻辑偏重
ES6模块:
ES6增加了JS语言层面的模块体系定义。ES6模块的设计思想,是尽量静态化,使编译时就能确定模块的依赖关系,以及输入和输出的变量,CommonJS和AMD模块,都只能在运行时确定这些东西
优点:容易进行静态分析
面向未来的ES标准
缺点:原生浏览器还没有实现该标准
全新的命令,新版NodeJS才支持
实现:
Babel
webpack安装:
npm install webpack -g
npm install webpack-cli -g
我安装的版本:
webpack: 5.74.0
webpack-cli: 4.10.0
idea中 Terminal:
webpack --watch 监听,如果js有变化会重新打包,可以实现热部署
标签:ES6,浏览器,webpack,缺点,模块,使用,加载 From: https://www.cnblogs.com/doremi429/p/16582801.html