[esbuild]ビルドスクリプトの使い方

この記事を書いたチーム:frontier

esbuildとは

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

エスビルド(esbuild は、高速的なJavaScriptバンドラーおよびトランスパイラーです。
主にJavaScriptTypeScriptのコードを効率的にビルド、最適化するために使用されます。

以下にesbuildの特徴と用途を簡単に紹介させて頂きます。

特徴
他のWeb用ビルドツールより、キャッシュを必要とせずに、圧倒的なビルド速度とシンプルなAPIが主要な特徴です。TypeScriptJSXJSONCSS など多くの形式もサポートされている。

用途
(1)バンドル(bundle
複数のモジュールや依存関係を1つのファイルにまとめます。
: コマンドラインでReactやライブラリを含むプロジェクトをbundle.jsとして出力。

(2)トランスパイル(transpile
ES6+(モダンなJavaScript)やTypeScriptのコードを、特定のブラウザや環境で動作する形式に変換します。
: コマンドラインでTypeScript ES5 に変換。

(3)コードの圧縮
コードをミニファイ(圧縮)してファイルサイズを削減します。
: コマンドラインでミニファイを有効化。

(4)ソースマップの生成
デバッグ用にソースマップを生成します。
: コマンドラインでソースマップ付きで出力。

(5)プラグイン
カスタム処理や特殊なファイル形式のサポートを追加できます。
: esbuildJavaScript APIでビルドスクリプトを記述し、カスタムプラグインで特定ファイルを処理する。

 

ビルドスクリプトの作成

(1)プロジェクト構成
以下のようなプロジェクト構成(Node.jsReact等)を想定する。

(2)必要な依存関係をインストール

(3)ビルドスクリプトの作成
①コマンドラインインターフェイスの場合
package.jsonビルドコマンドは繰り返し実行されるものなので、自動化する必要があります。自動化を行う作成方法は、以下のようにビルドスクリプトを追加する。
prebuild(ビルド前)、build(ビルド)、postbuild(ビルド後)

esbuildJavaScript APIの場合
ただし、esbuildに多くのオプションを渡す必要がある場合、コマンドラインインターフェイスを使用すると扱いにくくなる可能性があります。より高度な使用法の場合は、esbuild JavaScript APIを使用してJavaScript(*.mjsファイル)でビルドスクリプトを記述する必要があります。以下のようにビルドスクリプトを追加する。
prebuild(ビルド前)、build(ビルド)、postbuild(ビルド後)

-1eslintエラーチェックが問題ないように、tsconfig.eslint.jsonへ「*.mjs」ファイル許可を配置する。

-2JavaScript(*.mjsファイル)でビルドスクリプトを記述する。

prebuildの実装例

buildの実装例

postbuildの実装例

(4)package.json にスクリプトを登録
①コマンドラインインターフェイスの場合は、(3)と同様。
esbuildJavaScript APIの場合

(5)ビルドスクリプトの実行

npmbuildの前後にprebuildpostbuildというスクリプトを自動で認識します。
・これらは手動で呼び出す必要はありません。

実行フロー
1、prebuild: ビルド前の準備処理。
distフォルダをクリーンアップ。

2、build: ビルドそのもの。
esbuildによりsrc/index.jsをビルドしてdist/index.jsを生成。

3、postbuild: ビルド後の追加処理。
dist/index.jszipで圧縮。

 

■参考文書: 

『エスビルド公式サイト:https://esbuild.github.io/

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス