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

Я хочу знать, чем он отличается от файлов *. Js (в чем преимущества)?

Keval Bhogayata

Ответов: 3

Ответы (3)

Указывает на файл модуля ES6.


Исходная модульная система Node.js - CommonJs (в которой используются require и module.exports).

С момента создания Node.js модульная система ECMAScript (которая использует импорт и экспорт) стала стандартной, а в Node.js добавлена ​​поддержка это.

Node.js будет обрабатывать файлы .cjs как модули CommonJS, а файлы .mjs как модули ECMAScript. Он будет обрабатывать файлы .js как любую систему модулей по умолчанию для проекта (это CommonJS, если package.json не говорит "type": "module",).

См. Также: Различия между модульной системой 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 файлами «Скрипт Майкла Джексона».

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

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

2022 WebDevInsider