From 805a3e06f9e0c0f0797d5b93751e6b416369cb65 Mon Sep 17 00:00:00 2001 From: Yuto Yoshino Date: Sun, 22 Dec 2024 23:30:07 +0900 Subject: [PATCH] =?UTF-8?q?Bun=E3=81=AF=E3=83=80=E3=82=A6=E3=83=B3?= =?UTF-8?q?=E3=83=AC=E3=83=99=E3=83=AB=E3=82=B3=E3=83=B3=E3=83=91=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=AF=E3=81=97=E3=81=A6=E3=81=8F=E3=82=8C=E3=81=AA?= =?UTF-8?q?=E3=81=84=20(#90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bunはダウンレベルコンパイルはしてくれない * update --- app/routes/posts/bun-transpile-target.mdx | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 app/routes/posts/bun-transpile-target.mdx diff --git a/app/routes/posts/bun-transpile-target.mdx b/app/routes/posts/bun-transpile-target.mdx new file mode 100644 index 0000000..06cfdcd --- /dev/null +++ b/app/routes/posts/bun-transpile-target.mdx @@ -0,0 +1,45 @@ +--- +title: "Bunはダウンレベルコンパイルはしてくれない" +description: "Bunでトランスパイルしてくれるのはいいものの、吐き出すコードの種類って指定できるの?って話です。" +date: "2024/12/22" +updatedAt: "2024/12/22" +path: "bun-transpile-target" +published: true +--- + +[2024年 ユウトの一人アドベントカレンダー](https://adventar.org/calendars/9980)の22日目の記事です。 + +## Intro + +Bunでトランスパイルしてくれるのはいいものの、吐き出すコードの種類って指定できるの?って話です。 + +## Bunのトランスパイル + +Bunはトランスパイルもしてくれます。 + +[https://bun.sh/docs/api/transpiler](https://bun.sh/docs/api/transpiler) + +この際、オプションにはjs, jsx, ts, tsxはドキュメントを見た感じ指定できそうです。 + +```ts +const transpiler = new Bun.Transpiler({ + loader: "tsx", // "js | "jsx" | "ts" | "tsx" +}); +``` + +ただ、例えばESNextじゃなくてES2023にしたいみたいなことってできるのでしょうか。 + +一応targetというオプションはあるものの、このニュアンス的にはESModuleかCommonJSかBunかみたいな感じそうですね。 + +ref: [https://bun.sh/docs/api/transpiler#reference](https://bun.sh/docs/api/transpiler#reference) + +## サポートしていないらしい + +なかなかissueにもそれらしくことが載っていなく、色々探していたらvs esbuildのところで見つけました。 + +> No supported. Bun's bundler performs no syntactic down-leveling at this time. +> https://bun.sh/docs/bundler/vs-esbuild#cli-api + +現状はサポートしていないそうです。 + +そこまで必須ではないし、最近のJSエンジンはどれも構文サポート早いので意外と問題ないんですかね。