💨
esbuild でバンドルせずに各ファイルをトランスパイルだけする
するぞ
-
entryPoints
にファイルのパス全部渡しておく - esbuild には glob パターンを展開する機能はないので自分でやりましょう
-
bundle
オプションはtrue
にしない -
outdir
を指定しとく -
format
とかplatform
とかtarget
はお好みで
import { build } from "esbuild";
import { globbySync } from "globby";
const entryPoints = globbySync("./src/**/**.{ts,tsx}");
/** @type {import('esbuild').BuildOptions} */
const options = {
entryPoints,
minify: true,
outdir: "./dist",
target: "es2019",
platform: "browser",
format: "esm",
};
if (process.env.WATCH === "true") {
options.watch = {
onRebuild(error, result) {
if (error) {
console.error("watch build failed:", error);
} else {
console.log("watch build succeeded:", result);
}
},
};
}
build(options).catch((err) => {
process.stderr.write(err.stderr);
process.exit(1);
});
Discussion