Pourquoi convertir MJS en JS ?
Les utilisateurs convertissent le .mjs en .js simple pour abandonner l'extension explicite de module ES et laisser le package.json du projet décider du système de modules, ou pour fournir une sortie CommonJS que les anciennes versions de Node et les outils peuvent charger sans ESM.
Comment convertir MJS en JS
Renommer et définir le type dans package.json EASIEST
Renommez le fichier en .js et ajoutez "type": "module" au package.json pour que Node continue de le traiter comme un module ES.
Babel OPEN-SOURCE
Installez @babel/plugin-transform-modules-commonjs (ou @babel/preset-env) et lancez babel file.mjs --out-file file.js pour réécrire import/export en require/module.exports CommonJS.
esbuild OPEN-SOURCE
Lancez esbuild file.mjs --format=cjs --platform=node --outfile=file.js pour générer un paquet .js CommonJS à partir du module ES.
Visual Studio Code FREE
Ouvrez le .mjs dans VS Code, renommez-le en .js, et utilisez l'éditeur pour convertir manuellement les instructions import/export pour les petits fichiers.
À propos de ces formats
Un fichier .mjs est un code source JavaScript que Node.js traite comme un module ECMAScript, ce qui signifie qu'il utilise import et export au lieu du require de CommonJS. L'extension…
Ouvrir les détails de .MJS →Un fichier JS est un fichier de code source JavaScript - un texte brut et lisible qui alimente l'interactivité des pages web et les applications côté serveur via Node.js. Ouvrez-le dans…
Ouvrir les détails de .JS →Qualité et points de vigilance
- Le simple renommage ne change pas le code ; si
package.jsonn'est pas défini sur"type": "module", la syntaxe ESM dans un fichier.jsprovoquera uneSyntaxError. - La transpilation vers CommonJS transforme
import/exportenrequire/module.exportset peut modifier le comportement deawaitau niveau supérieur et deimport.meta. - Un bundler comme esbuild peut intégrer les dépendances et supprimer les commentaires, de sorte que le fichier
.jsde sortie n'est pas une copie ligne par ligne de la source.
Foire aux questions
Est-ce que `.mjs` est la même chose que `.js` ?
.mjs signifie toujours un module ES, tandis que .js suit ce que définit le package.json - CommonJS par défaut, ou ESM si "type": "module" est présent.Puis-je simplement renommer `.mjs` en `.js` ?
package.json contient "type": "module". Sinon, Node traite le .js comme du CommonJS et la syntaxe ESM générera une erreur.Comment conserver l'ESM après le renommage ?
"type": "module" à votre package.json, ou utilisez l'extension .mjs. Les deux indiquent à Node d'analyser le fichier comme un module ES.