● node实现了CommonJS模块化
● node v13.2.0之前
○ 在package.json中配置:
{
“type”: “module”,
“scripts”: {
“start”: “node --experimental-modules index.js”
}
}
● node v13.2.0之后
○ 只需要在package.json中配置:
{
“type”: “module”
}
=======================================================================================
● CommonJS
○ 它通过 require 来引入模块,通过 module.exports 定义模块的输出接口。这种模块加载方案是服务器端的解决方案(同步),node完成了对它的支持
● AMD
○ 采用异步加载的方式来加载模块,模块的加载不影响后面语句的执行。require.js 实现了 AMD 规范。
○ 对浏览器端的异步加载尤其适用,是一个浏览器端模块化开发的规范。
● CMD
○ 和 AMD 方案都是为了解决异步模块加载的问题,sea.js 实现了 CMD 规范。
区别:
AMD是依赖前置,在定义模块的时候就要声明其依赖的模块。
CMD是就近依赖,只有在用到某个模块的时候再去require
===========================================================================
● CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
● CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
整体加载fs模块(即加载fs的所有方法),生成一个对象(_fs),然后再从这个对象上面读取方法。这种加载称为“运行时加载”,
ES6模块化在代码编译阶段从fs模块加载需要的方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高。
==========================================================================
//1.在script标签中使用
//2.文件引入的方式
========================================================================
● 分别导出
● 统一导出
● 默认导出(export default)
========================================================================
● 通用导入
● 关于别名
● 解构导入
● 默认导入(export default)
========================================================================
// CommonJS模块
let { stat, exists, readfile } = require(‘fs’);
// 等同于如下代码块
let _fs = require(‘fs’);
let stat = _fs.stat;
let exists = _fs.exists;
let readfile = _fs.readfile;
//模块导出(a.js)
module.exports = {
firstName: ‘Michael’,
lastName: ‘vicky’
};
//模块导入(b.js)
const { firstName, lastName } = require(‘./testExports’);
console.log(firstName, lastName);
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
47)]
[外链图片转存中…(img-0MffcZqu-1710925517648)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-9BEKzBRE-1710925517648)]