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
Последняя проверка: Sep 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 дают более тонкий контроль над результатом.