Module Java Script
✅ .mjs の意味
-
Module JavaScript の略
-
ES Modules(import/export を使うモジュール方式)で書かれた JS ファイルであることを示す
ファイルの拡張子 .mjs は、ECMAScript Modules (ES Modules / ESM) として扱われる JavaScript ファイルであることを明示するための拡張子です。
主に Node.js 環境において、従来の読み込み方式(CommonJS)と区別するために使われます。
主な特徴とポイント
-
ES Modules (ESM) の強制
- Node.js では通常、
.jsファイルは CommonJS(require/module.exportsを使う方式)として扱われます。 .mjs拡張子を使うと、そのファイルは強制的に ES Modules(import/exportを使う方式)として扱われます。
- Node.js では通常、
-
構文の違い
- CommonJS (
.jsのデフォルト):const fs = require('fs'); module.exports = function() { ... }; - ES Modules (
.mjs):import fs from 'fs'; export function myList() { ... };
- CommonJS (
-
Strict Mode(厳格モード)がデフォルト
.mjsファイル内では、自動的に'use strict';が適用された状態になります(変数の宣言漏れがエラーになるなど、安全なコードになります)。
なぜ作られたのか?
JavaScript の標準仕様(ES2015/ES6)でモジュール機能(import/export)が決まりましたが、Node.js にはそれ以前から存在する独自のモジュール機能(CommonJS)がありました。