MJS CJS
Конвертация файлов

Конвертировать MJS в CJS

БЫСТРЫЙ ОТВЕТ
Возможно ли конвертировать MJS в CJS?
Да - MJS конвертируется в CJS.

Файл .mjs использует синтаксис ES-модулей, в то время как .cjs использует CommonJS. Сборщик типа esbuild или Babel автоматически переписывает import в require и export в module.exports. Основным препятствием является top-level await, который не может быть представлен в CommonJS.

На этой странице

Протестировано на macOS, Windows и Linux
Последняя проверка: Nov 2026

Больше бесплатных конвертеров

HEIC, PNG, WEBP, MP3 и другие - все инструменты здесь бесплатны.

Открыть инструменты

Зачем конвертировать MJS в CJS?

Пользователи конвертируют в .CJS для запуска кода в старых средах Node.js или инструментах, ожидающих CommonJS, или для поставки сборки, совместимой с require, наряду с ESM-версией. Логика остается прежней; меняется только связка модулей.

Способы конвертации MJS в CJS

Babel OPEN-SOURCE

Добавьте @babel/plugin-transform-modules-commonjs в вашу конфигурацию, затем запустите babel input.mjs -o output.cjs, чтобы переписать импорты в require.

Rollup FREE

Установите output.format в значение cjs в rollup.config.js и соберите проект; Rollup создаст CommonJS-бандл из вашего ESM-входа.

Об этих форматах

Качество и на что обратить внимание

  • Top-level await не имеет эквивалента в CommonJS и вызовет ошибку при конвертации.
  • Именованные экспорты становятся свойствами module.exports, а взаимодействие с экспортами по умолчанию может иметь тонкие различия.
  • Относительные пути import и import.meta.url могут потребовать корректировки для вывода в CommonJS.

Часто задаваемые вопросы

Можно ли конвертировать вручную?
Для небольших файлов - да: замените import x from 'y' на const x = require('y'), а export на module.exports.
Почему моя сборка не удалась?
Чаще всего из-за top-level await, который CommonJS не может выразить; переместите его внутрь асинхронной функции.
Нужно ли мне переименовывать в .cjs?
Да, если в вашем package.json указано "type": "module"; расширение .cjs заставляет Node рассматривать файл как CommonJS.
Какой инструмент самый быстрый?
esbuild - самый быстрый для выполнения одной командой; Babel и Rollup дают более тонкий контроль над результатом.