大分県の国東半島にある熊野摩崖仏
代替
大分県の国東半島にある熊野摩崖仏

JavaScriptのES Moduleについて調べました

2025年01月27日作成

Qiitaに記事を書きました

少し前ですが、Qiitaに記事を書きました
内容としては、AVL木という平衡二分木を可視化するというもので、JavaScriptで書きました。

そのためには、二分木そのもののプログラムも必要ですが、同時に、それを表示するプログラム、また、操作するプログラムも、一緒に考えなくてはいけません。

そうすると、プログラムがとても大きくなってしまい、あとから読んだり修正したりするのが、難しくなります。

読みやすさや修正しやすさのために、通常は、モジュールというものに小分けをすることが一般的です。

モジュール自体にも、いろいろ種類があるようなのですが、今回はmdnに書いてある通常のモジュール(いわゆる、ES Module)を使って、小分けすることにしました。

ES Module とは

JavaScriptのモジュールは、使い方がいくつかあるようなのですが、とりあえずexportとimportだけ使えれば十分です。

たとえば、parent.js というモジュールから、child.js というファイルに書いてある関数を使いたい場合、以下のようにします。

// parent.js
import {someFunc} from './child.js';

// インポートしたsomeFuncを実行
someFunc();
// child.js
function someFunc() {
    // 何かしらの実行
}
export {someFunc};

esbuild とは

モジュール化すると、ファイルを分けられるので、プログラムを書く側としては楽になります。
一方、読み込む側からすると、ファイルが増えるので、読み込みに時間がかかるようになってしまいます。

できれば、ファイルは1つにまとめたいところです。
まとめるのが、バンドラと呼ばれるものです。

有名どころでは、webpackというものですが、調べてみると、最近はesbuildというものが早いということを知りました。

esbuildは、node.jsを用意して、ドキュメントの通りにインストールすれば、コマンドラインから使えるようになります。

バンドルするときに、minify(ファイルの無駄な部分を圧縮する方法)を選択することも可能でした。

sassについて

なお、JavaScriptのモジュール化ができるなら、CSSもできます。

CSSについても、さまざまなプログラムがありますが、最近は、Dart Sassが一般的なようです。

最近は、素のCSSでも、ネストできるようになるなど、進化しているのでそれほど面倒でもないのかもしれませんが、しかし書くときにものすごい分量のCSSファイルを読むよりは、ファイルが分かれていたほうが便利かなと思います。
(Tailwindや、CSS in JSは、なんとなく敬遠しています。便利なのかもしれませんが、なんとなく手が出しづらいです。)

最後までお読みいただきありがとうございました。
なにかお気づきの点がありましたら、お問い合わせください。

日行連公式キャラクター「ユキマサくん」

(日行連公式キャラクター「ユキマサくん」)

つつじ行政書士事務所アイコン

つつじ行政書士事務所

応用情報技術者の行政書士です。
ご依頼等はお問い合わせからお願いします。

SNS等