CommonJS规范介绍|学习笔记

简介: 快速学习CommonJS规范介绍

开发者学堂课程【Node.js 入门与实战CommonJS规范介绍】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/588/detail/8298


CommonJS规范介绍


目录:

一、CommonJS规范介绍

二、补充ComonJS规范

三、关于node.js中Module详细介绍

四、ComonJS模块的合同


一、CommonJS规范介绍

1. JS规范了有哪些数据类型

2. 在JS中可以有数组、字符串等

3. 数组有哪些API,每个API有哪些参数

4. 规范了字符串有那些方法

5. 如何声明变量

6. 如何写循环

7. 核心模块都保存在lib目录下

8. 试图加载一个和核心模块 同名的 自定义模块(第三方模块)是不会成功的

9.  +自定义模块要么名字不要与核心模块同名

10.  +要么使用路径的方式加载

11. 9.核心模块只能通过模块名称来加载(错误示例: require('./http');这样是无法加载核心模块http的)

4.require() 加载模块使用./相对路径时,相对路径是相对当前模块不受执行node命令的路径影响

10.建议加载文件模块的时候始终添加文件后缀名,不要省略。

 

二、补充ComonJS规范

官方JS只规范了最基本的能力,当用JS写一个庞大的项目模块话开发的时候,便需要学习ComonJS规范来分模块、模块化开发、不同文件间如何通信,提供了更丰富的API。

1.[CommonJS 规范](http://www.commonjs.org/)

2.[模块的定义]

(http://www.commonjs.org/specs/modules/1.0/)

3.总结:CommonJS是为JavaScript语言制定的种模块规范、编程API规范

示例规范:

ComonJS规范中需要Rquire函数加载其他函数

(1)node.js.遵循了CommonJS规范

(2)在一个模块中,有一个自由变量“require”,这是一个函数

(3)在一个模块中,有一个名为“exports”的自由变量,这个模块可以在执行时添加其API。

(4)模块必须使用“exports”对象作为唯一的导出方式。

 

三、关于node.js中Module详细介绍

[Module](https://nodejs.org/dist/latest-v6.x/docs/api/modules.html)

 

四、ComonJS模块的合同

模块上下文

1.在一个模块中有一个自由变量"require",这是一个函数。

"require"功能接受模块标识符。

"require"返回外部楼块的导出API

如果存在依赖关系周期,则外部模块可能没有在其传递依赖关系之一需要时完成执行;在这种情况下,"require"返回的对象必须至少包含外部模块在调用之前准备的导出,以导致当前模块的执行。

如果请求的模块无法返回,则"require"必须引发错误。

2.在一个模块中,有一个名为"exports"的自由变量,这个模块可以在执行时添加其API

3.模块必须使用"exports"对象作为唯的导出方式。

模块标识符

1.模块标识符是由正斜杠分隔的“术语”字符串。

2.术语必须是camelCase标识符,""或".."

3.模块标识符可能没有类似".js"的文件扩展名。

4.模块标识符可以是“相对或顶级"。如果第一项是“”,则模块标识符为"相对”。要么”..

顶级标识符从概念模块名称空间根目录中解析出来。

6.相对标识符相对于其中写入和调用require”的模块的标识符来解析。

本说明书未指明以下重要互操作点:

1.模块是否与数据库,文件系统或工厂功能起存储,或与链接库可互换。

2.模块加载程序是否支持PATH来解析模块标识符。

 

相关文章
|
缓存 JSON JavaScript
37 # commonjs 规范流程梳理
37 # commonjs 规范流程梳理
54 0
|
5月前
|
存储 缓存 JavaScript
什么是CommonJS模块规范
【8月更文挑战第12天】什么是CommonJS模块规范
58 2
|
5月前
|
JavaScript 前端开发 C++
CommonJS和ES6模块规范有何区别
【8月更文挑战第21天】
77 8
|
5月前
|
缓存 JavaScript 前端开发
|
5月前
|
JSON JavaScript 前端开发
CommonJS规范
CommonJS规范
39 0
|
8月前
|
缓存 JavaScript 前端开发
前端 JS 经典:CommonJs 规范
前端 JS 经典:CommonJs 规范
72 0
|
8月前
|
JavaScript
JS模块化规范之ES6及UMD
JS模块化规范之ES6及UMD
97 3
|
8月前
|
JavaScript 前端开发
JavaScript高级主题:什么是模块化开发?CommonJS 和 ES6 模块的区别是什么?
JavaScript高级主题:什么是模块化开发?CommonJS 和 ES6 模块的区别是什么?
57 1
|
8月前
|
JavaScript 前端开发
说说你对ES6模块化的理解?和commonJS的区别?
ES6模块化(也称为ES2015模块化)是ECMAScript 6中引入的一种模块化规范,用于在JavaScript中组织和管理代码。它提供了一种更优雅和强大的方式来定义、引入和导出模块。
100 0
|
JavaScript 前端开发 内存技术
彻底搞清楚 ECMAScript 的模块化(三)
彻底搞清楚 ECMAScript 的模块化
403 0