31 # 模块的概念

简介: 31 # 模块的概念

模块化规范

  • commonjs 规范:node 中的模块化规范就是 commonjs 规范(node 自己实现的),CommonJS 模块输出的是一个值的拷贝
  • esmodule 规范(import export):ES6 模块输出的是值的引用
  • umd 规范(统一模块规范,如果浏览器不支持 commonjs requirejs,直接将变量放到 window 上)
  • amd 规范(requirejs):采用异步方式加载模块,推崇依赖前置、提前执行
  • cmd 规范(seajs,过时了):推崇依赖就近、延迟执行。

commonjs 规范

  • 可以把复杂的代码拆分成小的模块,方便管理代码和维护
  • 每个模块之间的内容都是相互独立的,互不影响(解决变量冲突的问题),解决方案:使用单例模式不能完全解决,可以使用自执行函数来解决

规范的定义:

  • 每个文件都是一个模块
  • 如果你希望模块中的变量被别人使用,可以使用 module.exports 导出这个变量
  • 如果另一个模块想使用这个模块导出的结果,需要使用 require 语法来引用(同步)

模块的分类

  • 核心模块、内置模块:不是自己写的,也不是安装来的,而是 node 中自己提供的,可以直接使用,比如:require("fs")
  • 第三方模块:别人写的模块,通过 npm install 安装过来的,不需要有路径,比如:require("commander")
  • 自定义模块:自己定义的模块就是自己写的模块,引用时需要增加路径(相对路径,绝对路径),比如:require("./6/kaimo-promise.js")
目录
相关文章
|
11月前
|
数据采集 算法 数据可视化
MMdetection框架速成系列 第03部分:简述整体构建细节与模块+训练测试模块流程剖析+深入解析代码模块与核心实现
按照抽象到具体方式,从多个层次进行训练和测试流程深入解析,从最抽象层讲起,到最后核心代码实现,希望帮助大家更容易理解 MMDetection 开源框架整体构建细节
512 0
|
存储 架构师 算法
架构设计的本质:系统与子系统、模块与组件、框架与架构
在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师。然而梦想很美好,但现实却很曲折。
架构设计的本质:系统与子系统、模块与组件、框架与架构
|
Java 数据库
项目的模块以及每一个模块的作用
项目的模块以及每一个模块的作用
项目的模块以及每一个模块的作用
|
数据采集 JavaScript 容灾
配置模块设计
配置模块设计
172 0
配置模块设计
|
缓存 Linux 索引
文件相关概念
文件相关概念
96 0
文件相关概念
|
Python
Python编程:contextlib模块实现上下文管理
Python编程:contextlib模块实现上下文管理
|
JavaScript 前端开发 测试技术
探索 Snabbdom 模块系统原理 上
探索 Snabbdom 模块系统原理 上
184 0
|
JavaScript 前端开发 Go
探索 Snabbdom 模块系统原理 下
探索 Snabbdom 模块系统原理 下
126 0
|
数据采集 负载均衡 搜索推荐
会计学包含的两种程序设计思想
会计学包含的两种程序设计思想
会计学包含的两种程序设计思想