# Модули 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 = { /* ... */ }