Abstrait: comparing incompatible CJS (legacy CommonJS) require
with EJS (ES6+ JS module or mjs) import
and export
syntax. En 2025, la configuration des modules CommonJS (CJS) et ECMAScript Modules (ESM) dans un projet Node.js nécessite toujours une attention particulière, surtout si vous souhaitez publier des paquets compatibles avec les deux systèmes de modules.
import
and export
syntax,"type": "module"
in package.json
.Si vous définissez “type”: “module”, tous les fichiers .js seront traités comme des modules ES.
require
and module.exports
,.mjs
file suffix,"type": "commonjs"
in package.json
.Pour publier un paquet compatible à la fois avec ESM et CJS, vous devez gérer les champs main et module dans votre package.json. Le champ main doit pointer vers l’entrée CommonJS, tandis que le champ module doit pointer vers l’entrée ESM