高校生物550830 views
高校化学2919622 views
中学英語810555 views
世界の国562865 views
雑学1473252 views
MathPython495041 views
英語611293 views
高校日本史190258 views
教育149270 views
いろは3002230 views

JavaScript は CommonJS と ESM のどちらを使うべきか

CommonJS は昔から Node.js で使われてきたけれど、今はもう少しずつ役目を終えつつある。現在の標準は ES Modules(ESM)で、import / export を使うスタイルが主流になっている。

CommonJS

Node.js で長く使われてきた形式。require() による動的読み込みができて便利だが、ブラウザではそのまま動かない。

ES Modules

ECMAScript の正式仕様。import / export でモジュールを扱い、ブラウザと Node.js の両方で動く。非同期ロードやツリーシェイキングにも対応している。

今の目安をまとめるとこんな感じ。

Node.js 18 以降 → ESM が正式対応(.mjs または package.json の "type": "module")
ブラウザ → ESM が完全標準
Bundler(Rollup, Vite, Webpack など)→ すべて ESM ベース
NPM パッケージ公開 → ESM または dual(CommonJS + ESM)構成が推奨

これから新しく作るなら、基本は ESM にしておくのが安心。ただ、既存のコードやライブラリとの兼ね合いで、CommonJS が混ざることもまだよくある。