💨
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