Skip to content
目录

在第一章中,我们简短的介绍了模块在Node.js中的重要性。我们讨论了模块如何在定义Node.js哲学及其编程经验的一些支柱中发挥基本作用。但是,但我们谈论模块时,我们真正的含义是什么?以及为什么它那么的重要?

一般来说,模块是构建重要应用程序的基础😎。模块允许你将代码拆分为可独立开发和测试的小单元。模块同时也是强制隐藏信息的主要机制,通过不导出函数和变量使其变为私有。

如果你有其它语言的编程经验,你可能知道类似的但名字不同的概念:package(Java, Go, PHP, Rust & Dart), assembly(.NET),library(Ruby)或者 unit(Pascal)。这个术语并不是完美互通的,因为每种语言或生态都有其独特的特质,但这些概念之间存在很大的重叠部分。

有趣的是,目前Node.js存在2种不同的模块系统😎:Common.js(CJS) & ECMAScript(ESM 或 ES modules)

本章中,我们将讨论为什么存在2种选择,我们将学习它们的优点和缺点,最后,我们将分析几个在使用或编写Node.js模块时相关的常见模式。本章最后,你应该能够对如何有效地使用模块以及如何编写自己的自定义模块做出务实的选择。

理解Node.js模块系统和模块模式对理解本书其它依赖本章知识的章节的内容非常重要。简而言之,本章讨论的主要话题如下:

  1. 为什么模块是必须的,以及为什么Node.js中存在不同的模块系统?
  2. CommonJS内部和模块模式
  3. Node.js中的ES Module(ESM)
  4. 🤩CommonJS和ESM的差异性和互操性

我们首先看看为什么需要模块。

2022年09月12日21:17:48