コンテンツにスキップ

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