# Модули CommonJS
Загрузчик модулей CommonJS (opens new window), функция require(), так же доступен для ES4X. Важно понимать, что этот загрузчик отличается от загрузчика nodejs. Это форк от npm-jvm (opens new window)
, специфичный для ES4X.
# Конкретные различия
Модули могут быть загружены из файловой системы или из содержимого jar-файлов. Процесс загрузки всегда идет через
Vert.x FileSystem (opens new window).
# Импорт синтаксиса ESM
Редакторы кода, такие как Visual Studio Code (opens new window), предпочитают автоматически завершать выражения с помощью синтаксиса ESM. Разумеется, такой синтаксис не совместим с commonjs, однако загрузчик постарается переделать выражения импорта под commonjs, если это возможно.
Рассмотрим следующий пример:
import { TestSuite } from '@vertx/unit';
const suite = TestSuite.create("the_test_suite");
// ...
suite.run();
Этот код несовместим с commonjs, однако функция require() изменит исходный код на следующий:
const TestSuite = require('@vertx/unit').TestSuite;
const suite = TestSuite.create("the_test_suite");
// ...
suite.run();
WARNING
Выражения импорта будут исправлены, но не выражения экспорта. Все выражения экспорта должны использовать формат commonjs:
module.exports = { /* ... */ }