Спецификация модуля CommonJS является стандартом, используемым в Node.js для работы с модулями.
Клиентский JavaScript, который запускается в браузере, использует другой стандарт, называемый модулями ES
Модули очень классные, потому что они позволяют вам инкапсулировать всевозможные функции и предоставлять эту функциональность другим файлам JavaScript в виде библиотек. Они позволяют создавать четко разделенные и многократно используемые фрагменты функциональности, каждый из которых можно тестировать самостоятельно.
Огромная экосистема npm построена на этом формате CommonJS.
Синтаксис для импорта модуля следующий:
const package = require('module-name')В CommonJS модули загружаются синхронно и обрабатываются в том порядке, в котором их находит среда выполнения JavaScript. Эта система была создана с учетом серверного JavaScript и не подходит для клиентской части (именно поэтому были введены модули ES).
Файл JavaScript является модулем, когда он экспортирует один или несколько определяемых им символов, являющихся переменными, функциями, объектами:
Файл JavaScript является модулем, когда он экспортирует один или несколько определяемых им символов, являющихся переменными, функциями, объектами:
exports.uppercase = (str) => str.toUpperCase()
Любой файл JavaScript может импортировать и использовать этот модуль:
const uppercaseModule = require('uppercase.js')
uppercaseModule.uppercase('test')Простой пример можно найти в этом глюке .
Вы можете экспортировать более одного значения:
exports.a = 1 exports.b = 2 exports.c = 3
и импортируйте их по отдельности, используя назначение деструктурирования:
const { a, b, c } = require('./uppercase.js')или просто экспортируйте одно значение, используя:
//file.js module.exports = value
и импортируйте его с помощью
const value = require('./file.js')Оригинал: “https://flaviocopes.com/commonjs/”