# Modulos CommonJS
CommonJS (opens new window) cargador de modulos, la funcion require()
, tambien esta disponible en ES4X. Es importante
saber que este cargador no es lo mismo que el cargador nodejs
. Es una bifurcacion (fork) de npm-jvm (opens new window)
que es especifica a ES4X.
# Diferencias especificas
Los modulos pueden ser cargados desde el sistema de archivos o desde dentro de archivos jar
. El proceso de cargado siempre va sobre
Vert.x FileSystem (opens new window).
# Sintaxis ESM para importar
Editores como Visual Studio Code (opens new window) prefieren auto completar las declaraciones de importancion usando la sintaxis ESM.
Por supuesto esta sintaxis no es compatible con commonjs
, sin embargo el cargador intentara adaptar las declaraciones de importancion
a commonjs
cuando sea posible.
Considera el siguiente ejemplo:
import { TestSuite } from '@vertx/unit';
const suite = TestSuite.create("the_test_suite");
// ...
suite.run();
Este codigo no es compatible con commonjs
, sin embargo la funcion require()
transformara el codigo fuente a:
const TestSuite = require('@vertx/unit').TestSuite;
const suite = TestSuite.create("the_test_suite");
// ...
suite.run();
WARNING
Aunque las declaraciones de importancion seran adaptadas, las exportaciones no lo son. Todas las exportaciones deben usar el formato commonjs:
module.exports = { /* ... */ }