В чем разница между файлами.js и.mjs?
Я начал работать над существующим проектом на основе nodejs. Я просто пытался понять поток выполнения, где я столкнулся с некоторыми файлами.mjs. Я искал в Интернете, где я обнаружил, что это файлы JS на основе модулей.
Я хочу знать, чем он отличается от файлов.js (как это выгодно)?
2 ответа
Собственная модульная система Node.js - CommonJs.
Он имеет экспериментальную поддержку стандартной модульной системы ES6 и использует .mjs
Расширение файла является частью одного из способов вызвать эту поддержку.
Короче говоря, он используется Node.js для различения файлов модулей CommonJS и ES6.
Файл.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.