В чем разница между файлами.js и.mjs?

Я начал работать над существующим проектом на основе nodejs. Я просто пытался понять поток выполнения, где я столкнулся с некоторыми файлами.mjs. Я искал в Интернете, где я обнаружил, что это файлы JS на основе модулей.

Я хочу знать, чем он отличается от файлов.js (как это выгодно)?

2 ответа

Решение

Собственная модульная система Node.js - CommonJs.

Он имеет экспериментальную поддержку стандартной модульной системы ES6 и использует .mjs Расширение файла является частью одного из способов вызвать эту поддержку.

Короче говоря, он используется Node.js для различения файлов модулей CommonJS и ES6.

Различия между модульной системой ES6 и CommonJs

Файл.MJS

  • MJS расширение для модулей EcmaScript
  • Файл MJS - это файл исходного кода, содержащий модуль ES (модуль ECMAScript) для использования с приложением Node.js.
  • Файлы MJS написаны на JavaScript и могут также использовать расширение.JS вне контекста Node.js.

  • Модули ES позволяют разработчикам веб-приложений и приложений организовывать код в меньшие повторно используемые компоненты.

ECMAScript 6 (ES6) представил спецификацию модулей ES, предоставляя стандарт для реализации модулей в JavaScript. Начиная с 2018 года все основные веб-браузеры поддерживают модули ES.

Однако популярность модульного JavaScript предшествует ES6. Node.js, среда выполнения JavaScript, использовала CommonJS в качестве спецификации для модулей. Так как многие существующие приложения были построены с CommonJS, когда Node.js добавлена ​​поддержка родных ES модулей, это спорно представила расширение MJS файла дифференцироваться два и предотвратить приложения от взлома.

ПРИМЕЧАНИЕ. Некоторые разработчики неофициально называют файлы MJS файлами "Script Michael Jackson".

Для ясности. Что касается разработчиков / людей, легко отличить файл модуля (.mjs) от обычного файла javascript (.js)... потому что это не всегда легко определить, даже если вы изучите код в файле.

Есть также преимущества в производительности, что дает вам больше причин рассмотреть возможность его использования. V8(движок JavaScript, который поддерживает Google Chrome) рекомендует использовать.mjs, но это все еще зависит от вашей ситуации. Если вы хотите узнать больше о его преимуществах, проверьте https://v8.dev/features/modules.

Другие вопросы по тегам