一 模块
1
模块是对功能相似的函数或属性的封装。例如:
fs 模块中封装了一系列文件操作的函数。例如:fs.readFile()、fs.writeFile()
path 模块中封装了一系列路径处理的函数。例如:path.join(),path.basename()
2 什么是模块化
一个js文件可以引入其他的js文件,能使用引入的js文件中的变量、数据、这种特性就称为模块化
二 模块化规范
1.概念
概念:拆分模块和组合模块时,所遵守的规则,就叫做模块化规范
列如:在Node.js中导入其他模块时,统一使用require()函数
// path 模块
const path = require('path')
// fs 模块
const fs = require('fs')
2.常见的模块化规范
2.1 CommonJS 规范:nodejs中遵守的就是commonjs规范
2.2 ES6 模块化规范:(前后端通用的模块化规范;Node.js、Vue、React 中都能使用!)
2.3 CMD 和 AMD 模块化规范(较少使用): CMD--sea.js, AMD-require.js
2.4 UMD 叫做通用模块定义规范(Universal Module Definition),它可以通过运行时或者编译时让同一个代码模块在使用 CommonJs、CMD 甚至是 AMD 的项目中运行。它没有自己专有的规范,是集结了 CommonJs、CMD、AMD 的规范于一身。
三 用commonJS规范来自定义模块
1. nodejs的三种模块 : 核心(内置) 、 第三方的 、自定义
2. 类比于js自定义函数,自定义模块的使用场景时:
·····代码需要在项目重用
·····代码需要提供给他人使用
·····代码虽然不需要重用,但封装成模块有利于优化代码结构,方便后期维护与扩展
3.在Node.js中定义模块,遵守commonJS的模块化规范。commonJS规范中主要规定了一下3三项内容
···导入其他模块时,统一使用require()函数
····每个 .js文件都是一个独立的模块,模块内的成员都是私有的
····在每个JS模块中,使用module.exports向外共享成员。
4.自定义模块的特点 :
···使用requi(‘自定义模块的路径’)即可导入自定义模块
···自定义模块内的变量、函数等都是私有的,默认无法被外界访问到。
自定义模块的要点
1.不要用特殊的文件名
2.导入模块的路径是相对路径
3.导入之后,记得console.log
4.记得导出