ESMとCJS
CommonJS: 以下CJS
ECMAScript modules: 以下ESM
CJSはこんなやつ
code:Node.js
const hoge = require('lib-name');
requireを使ってパッケージを読み込む。
ESMはフロントエンドJSでよく書くES6のモジュール読み込みの書き方
code:JavaScript
import hoge from 'lib-name';
Node.jsは歴史的経緯があり、現在はCJSとESMの共存時代となっている。
(つい最近、Node.jsでESMのexperimentalフラグが消えたらしい)
既存のアプリケーションであれば、CJSで書かれていることが多く、そのままCJSで書くほうが無難っぽい。
新規に作る場合はTypeScriptを最初から入れたり、snowpackやbackpackでトランスパイルする前提でESMで書けばいいと思う。 cf)