nakasyou
nakasyou
GitHubTwitterElement
← Back
Published: 2023-4-7

esToyohimeっていうJavaScriptライブラリ生成器を作りました

「esToyohime」というライブラリ生成器を作りました。バンドル処理には、esbuildを使用しています。
レポジトリ: https://github.com/nakasyou/esToyohime

ロゴはこんな感じです:
esToyohime logo

うさぎはcc0の画像から取ってきました。 Turbowarpで編集しました。

なんで作ったの?

今、私は、KaguraJSというゲームフレームワークを作っています。 そのフレームワークを作るのに、必要だと考えたからです。

単体esbuildとかRollupとかあるじゃん!

Rollup.js等も考えました。でも、私は、esToyohimeを作成しました。 なぜかというと、**node_modulesが大嫌い**だからです。 node_modulesは、依存ライブラリを追加するときの、npm iをするたびに大きくなります。 node_modulesは、Node.jsで開発するときに、いつもストレスになっていました。 私の開発用のノートパソコンは、SSDで、いつも容量限界です。それが嫌なので、私はesToyohimeを作りました。

Denoで動いています

esToyohimeは、Denoで動きます。Denoは、**node_modulesを使いません**。 私にとって、まさに神でした。 Rollupは、Node.jsで動きます。それが嫌なので、esToyohimeを作りました。

bye npm

Denoで開発するので、npmとはおさらばです。 package.jsonも必要ありません!

しかし、今あるJavaScriptプロジェクトのほとんどが、npmに登録されていると感じます。 npmに登録しなければ、いけないような気がします。

Denoが開発している、dntを内蔵しました! これにより、npmのパッケージとしても生成できます!

その他の特徴

Realtime bundle

これは、ほとんど、esbuildのおかげで作ることが出来ました。esbuildのwatchをそのまま使っています。

argment build

コマンドライン引数を使って、そのままバンドルできます。 esToyohimeの設定ファイルが、build.tsなら、deno run -A build.ts --buildでビルドできます。 でも、ちょっとめんどくさいですね。 なので、deno.jsonのタスクランナーに登録すれば良いのです。

{
  "tasks": {
    "build": "deno run -A build.ts --build",
    "dev": "deno run -A build.ts --watch",
    "npm": "deno run -A build.ts --npm"
  }
}

こうすれば、deno task buildですみます。

まとめ

こんな感じのものを作ってみました。 まだ使える段階ではありませんが、だんだんと成長させていきたいです。

以上。

© 2023 nakasyou. All rights reserved. CC BY 4.0 LICENSE.