mirror of
https://github.com/marko-js/marko.git
synced 2026-02-01 16:07:13 +00:00
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import fs from "fs";
|
|
import path from "path";
|
|
import esbuild from "esbuild";
|
|
|
|
Promise.all(
|
|
["dist/debug", "dist"].flatMap((env) =>
|
|
["dom", "html"].flatMap((name) => {
|
|
(["esm", "cjs"] as const).map(async (format) => {
|
|
const result = await esbuild.build({
|
|
bundle: true,
|
|
entryPoints: [`src/${name}/index.ts`],
|
|
metafile: true,
|
|
outfile: `${env}/${name}/index.${format}.js`,
|
|
format,
|
|
define:
|
|
env === "dist" ? { MARKO_DEBUG: "false" } : { MARKO_DEBUG: "true" },
|
|
minifySyntax: env === "dist",
|
|
mangleProps: env === "dist" ? /^___/ : undefined,
|
|
sourcemap: true,
|
|
});
|
|
const pkgDir = `${env}/${name}`;
|
|
await fs.promises.writeFile(
|
|
`${pkgDir}/meta.${format}.json`,
|
|
JSON.stringify(result.metafile)
|
|
);
|
|
await fs.promises.writeFile(
|
|
`${pkgDir}/package.json`,
|
|
JSON.stringify(
|
|
{
|
|
main: "index.cjs.js",
|
|
jsnext: "index.esm.js",
|
|
module: "index.esm.js",
|
|
types: path.relative(pkgDir, `dist/${name}/index.d.ts`),
|
|
},
|
|
null,
|
|
2
|
|
)
|
|
);
|
|
});
|
|
})
|
|
)
|
|
).catch(console.error);
|