コンテンツにスキップ

ECMAScript Modules と CommonJS

CommonJS と ES Modules についてまとめる

ECMAScript Modules

ES Modules, ESModules と略されることもある。import exportとかはこっち。

Web ブラウザ向けの外部モジュールの仕組みだが、Node.js も最近は ES Modules の利用が可能になっており、現在はこちらが一般的らしい。

src/path/to/module.ts
1
2
3
4
5
6
7
export default function () {
  console.log("Hello, default module!");
}

export function module() {
  console.log("Hello, module!");
}

以下のように中括弧を用いずに import すると default のものを指定した名前で import することになる。

src/app.ts
1
2
3
import module from "./path/to/module";

module(); // Hello, default module!

以下のように中括弧を用いて import すると中括弧に記載した名前のものを import することになる。

src/app.ts
1
2
3
import { module } from "./path/to/module";

module(); // Hello, module!

CommonJS

require exports module.exportsとかはこっち。

当初から Node.js がサポートしている外部モジュールの仕組みらしい。

CommonJS - Wikipedia

CommonJS とは、サーバーサイドなどのウェブブラウザ環境外における JavaScript の各種仕様を定めることを目標としたプロジェクトである。

require()でインポートしているコードはこれに則っているらしい。

相互変換

# CommonJS と ES6 の import/export で迷うなら #JavaScript - Qiita