首页 > 编程语言 >[NodeJS] JavaScript模块化

[NodeJS] JavaScript模块化

时间:2024-07-09 21:30:37浏览次数:13  
标签:exports NodeJS 模块化 require JavaScript module js 模块 加载

JavaScript诞生于1995年,一开始只是用于编写简单的脚本。

随着前端开发任务越来越复杂,JavaScript代码也越来越复杂,全局变量冲突、依赖管理混乱等问题变得十分突出,模块化成为一个必不可少的功能。

模块化发展史与方案对比

YUI 与 JQuery

2006年,雅虎开源了组件库YUI Library,使用类似于Java的命名空间的方式来管理模块:

YUI.util.module.doSomthing();

同年,JQuery发布,使用IIFE和闭包的方法创建私有作用域,避免全局变量污染,这种管理模块的方法流行了一段时间。

(function(root) {
    // 模块内部变量和函数
    var data = 'Module Data';
    function getData() {
        return data;
    }
    
    // 将模块接口挂载到全局对象上
    root.myModule = {
        getData: getData
    };
})(window);

// 使用模块
console.log(myModule.getData()); // 输出: Module Data

当一个模块依赖于其它模块时:(ModuleB依赖于ModuleA和ModuleC)

(function(root, moduleA, moduleC) {
    // 模块B代码
})(window, window.moduleA, window.moduleC);

这种方法有以下缺点:

  1. 模块挂载到了全局对象上,仍然可能存在冲突;
  2. 缺乏标准化,不同程序员对这种方案的实现可能不同;
  3. 依赖管理困难,当依赖模块量比较大时,手动传递参数容易出错。

ServerJS, CommonJS 和 Node.js

2009年1月,Mozilla 的工程师制定了一套JavaScript模块化的标准规范,取名为ServerJS,规范版本为Modules/0.1。

同年4月,ServerJS更名为CommonJS

ServerJS最初用于服务端的JS模块化,用于辅助自动化测试工作。

在Node.js出现之前也有运行于服务端的JS,叫做Netscape Enterprise Server,它并不像Node.js,后者拥有访问操作系统文件系统,以及网络I/O等能力;而前者更像是早期的php,只是用于在服务端填充模板。更详细的介绍可以看

标签:exports,NodeJS,模块化,require,JavaScript,module,js,模块,加载
From: https://www.cnblogs.com/feixianxing/p/18292777/nodejs-modules-commonjs-esmodules

相关文章

  • 【JavaScript脚本宇宙】状态管理利器:JavaScript 库全面解析
    提升项目效率与可维护性:JavaScript状态管理库大揭秘前言在现代前端开发中,状态管理是一个至关重要的话题。随着复杂性的增加,有效地管理应用程序的状态变得越来越具有挑战性。本文将介绍一些流行的JavaScript库,这些库提供了各种方式来管理状态和数据流。欢迎订阅专栏:Ja......
  • NodeJS蔬菜自产零售混合销售平台-计算机毕业设计源码10149
    摘 要随着移动互联网的快速发展,购物方式也发生了巨大的变化。蔬菜作为消费者生活中必不可少的商品之一,在移动互联网时代也迎来了新的购物方式——购物小程序。购物小程序是一种基于手机应用平台的轻量级应用程序,用户可以通过它方便地浏览、选择和购买蔬菜。本文介绍了一个......
  • JavaScript中的执行上下文和原型链
    目录一、执行上下文1.执行上下文2.执行上下文栈3.闭包1)定义2)形成条件3)例子(1)例子1:简单闭包(2)例子2:闭包与循环(3)例子3:使用闭包模拟私有变量二、原型链1.定义2.原型(Prototype)与构造函数(Constructor)3.原型链使用1)工作原理2)使用(1)设置原型对象(2)原型链的继承一、......
  • JavaScript基础笔记
    前言在JavaScript诞生的前几年,有人说:JavaScript是一门四不像的语言;JavaScript是一门没有规范的语言;JavaScript是一门兼容糟糕的语言;JavaScript是一门不精准的语言;JavaScript是一个半成品语言;JavaScript是一门糟糕的语言;JavaScript只是一个玩具胶水语言;这些声音从......
  • JavaScript介绍、初识(注释语法、书写位置、书写规范)、常量和变量、数据类型Number、
    【一】JavaScript介绍【1】什么是jsjs也是一门编程语言,他可以写后端代码【2】什么是node.js前端由于非常受制于后端,所以有一些人异想天开想要通过js来编写后端代码一统江湖由此开发了一个叫nodejs的工具(支持js跑在后端服务器上)但是并不能完美的实现【3】JavaScript......
  • 【Javascript】微信小程序项目结构目录详解
    我白天是个搞笑废物表演不在乎夜晚变成忧伤怪物撕扯着孤独我曾经是个感性动物小心地感触现在变成无关人物                     ......
  • 【js面试题】深入理解尾递归及其在JavaScript中的应用
    面试题:举例说明尾递归的理解,以及应用场景引言:在编程中,递归是一种常见的解决问题的方法,它允许函数调用自身来解决问题。然而,递归如果不当使用,可能会导致栈溢出错误,特别是在处理大量数据时。尾递归是一种特殊的递归形式,它能够优化递归调用,避免栈溢出的问题。本文将深入探......
  • JavaScript总结2
    概述JavaScript是世界上最流行的脚本语言。JavaScript是一种轻量级的编程语言,可以插入HTML页面的编程代码。JavaScript插入HTML页面后,可由浏览器执行。特点语法简单,易学易用;解释性语言;跨平台,基于对象和事件驱动,可用于客户端。作用可以动态改变网页内容,网页外观;验证表......
  • [NodeJS] Streams流式数据处理
    在现代应用开发中,数据处理的效率和资源管理尤为重要。NodeJS作为一种高效的JavaScript运行时环境,通过其强大的流(Stream)功能,提供了处理大规模数据的便捷方式。流式数据处理不仅能够优化内存使用,还可以提高数据处理的实时性和效率。下文将介绍NodeJS中的流概念、流的类型以及如何利......
  • nodejs编写退出登录的接口逻辑
    目录1.安装必要的依赖2.登录成功生成和返回JWT3.在服务器端维护一个黑名单列表,记录已失效的JWT4.在验证JWT时检查黑名单5.退出登录时将JWT添加到黑名单中完整代码nodejs实现退出登录接口的逻辑,通常包括以下步骤:安装必要的依赖登录成功生成和返回JWT。在服务器......