MJS CJS
Conversion de fichier

Convertir MJS en CJS

RÉPONSE RAPIDE
Est-il possible de convertir MJS en CJS ?
Oui - MJS se convertit en CJS.

Un fichier .mjs utilise la syntaxe des modules ES, tandis que .cjs utilise CommonJS. Un bundler comme esbuild ou Babel réécrit automatiquement import en require et export en module.exports. Le principal obstacle est le await au niveau supérieur, que CommonJS ne peut pas représenter.

Sur cette page

Testé sur macOS, Windows et Linux
Dernière vérification le Sep 2026

Plus de convertisseurs gratuits

HEIC, PNG, WEBP, MP3 et plus - chaque outil ici est gratuit.

Ouvrir la boîte à outils

Pourquoi convertir MJS en CJS ?

Les utilisateurs convertissent en .CJS pour exécuter du code dans d'anciennes configurations Node.js ou des outils qui attendent du CommonJS, ou pour fournir une version compatible avec require aux côtés d'une version ESM. La logique reste la même ; seul le câblage des modules change.

Comment convertir MJS en CJS

Babel OPEN-SOURCE

Ajoutez @babel/plugin-transform-modules-commonjs à votre configuration, puis lancez babel input.mjs -o output.cjs pour réécrire les imports en require.

Rollup FREE

Définissez output.format sur cjs dans rollup.config.js et lancez la construction ; Rollup génère un paquet CommonJS à partir de votre entrée ESM.

À propos de ces formats

Qualité et points de vigilance

  • Le await au niveau supérieur n'a pas d'équivalent CommonJS et l'échec de la conversion est inévitable.
  • Les exports nommés deviennent des propriétés sur module.exports, et l'interopérabilité avec les exports par défaut peut différer subtilement.
  • Les chemins d'accès import relatifs et import.meta.url peuvent nécessiter un ajustement pour la sortie CommonJS.

Foire aux questions

Puis-je convertir manuellement ?
Pour les petits fichiers, oui : remplacez import x from 'y' par const x = require('y') et export par module.exports.
Pourquoi ma construction a-t-elle échoué ?
Le plus souvent à cause d'un await au niveau supérieur, que CommonJS ne peut pas exprimer ; déplacez-le à l'intérieur d'une fonction asynchrone.
Dois-je renommer en .cjs ?
Oui, si votre package.json contient "type": "module" ; l'extension .cjs force Node à le traiter comme du CommonJS.
Quel outil est le plus rapide ?
esbuild est le plus rapide pour une commande unique ; Babel et Rollup offrent un contrôle plus fin sur la sortie.