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")
目录
打赏
0
0
0
0
21
分享
相关文章
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
C语言中的模块化编程思想,介绍了模块化编程的概念、实现方式及其优势,强调了合理划分模块、明确接口、保持独立性和内聚性的实践技巧
本文深入探讨了C语言中的模块化编程思想,介绍了模块化编程的概念、实现方式及其优势,强调了合理划分模块、明确接口、保持独立性和内聚性的实践技巧,并通过案例分析展示了其应用,展望了未来的发展趋势,旨在帮助读者提升程序质量和开发效率。
102 5
创建一个仅用一个函数/模块/类就可以处理这组不同事物的抽象
在软件开发中,良好的变量名和函数名能够显著提升代码的可读性和可维护性。对于变量命名,建议使用有意义且易于发音的名字(如 `currentDate` 而非 `yyyymmdstr`),对同类变量使用一致的词汇(如统一使用 `getUser`),以及使用解释性的变量名以减少理解成本(如使用常量 `MILLISECONDS_IN_A_DAY` 替代数字 `86400000`)。此外,避免不必要的上下文重复,并使用默认参数代替逻辑运算。对于函数,应限制参数数量(理想情况下不超过两个),确保每个函数只做一件事,并且函数名应清晰描述其功能。通过遵循这些原则,代码将更加简洁明了。
43 3
模块化(Modularization)是一种软件工程实践,旨在将大型、复杂的系统分割成一系列松散耦合、功能独立且具有明确定义接口的模块。
模块化简化复杂软件,通过划分独立模块提升代码可读性、维护性、复用性和扩展性。JavaScript模块化有多种方式:CommonJS(Node.js,`require()`/`module.exports`),AMD(RequireJS,异步加载,`define()`/`require()`),以及ES6 Modules(官方标准,`import`/`export`)。早期还有闭包和IIFE等非正式方法。现代工具如Webpack和Rollup处理兼容性问题,使模块化代码能在各种环境中运行。
147 0
Secureboot概念
Secureboot概念
252 0
架构设计的本质:系统与子系统、模块与组件、框架与架构
在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师。然而梦想很美好,但现实却很曲折。
架构设计的本质:系统与子系统、模块与组件、框架与架构
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等