You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.0 KiB
49 lines
1.0 KiB
const path = require("path"); |
|
|
|
const { build } = require("esbuild"); |
|
|
|
// contains all dependencies bundled inside |
|
const getConfig = (outdir) => ({ |
|
outdir, |
|
bundle: true, |
|
format: "esm", |
|
entryPoints: ["src/index.ts"], |
|
entryNames: "[name]", |
|
assetNames: "[dir]/[name]", |
|
alias: { |
|
"@excalidraw/utils": path.resolve(__dirname, "../packages/utils/src"), |
|
}, |
|
external: ["@excalidraw/common", "@excalidraw/element", "@excalidraw/math"], |
|
}); |
|
|
|
function buildDev(config) { |
|
return build({ |
|
...config, |
|
sourcemap: true, |
|
define: { |
|
"import.meta.env": JSON.stringify({ DEV: true }), |
|
}, |
|
}); |
|
} |
|
|
|
function buildProd(config) { |
|
return build({ |
|
...config, |
|
minify: true, |
|
define: { |
|
"import.meta.env": JSON.stringify({ PROD: true }), |
|
}, |
|
}); |
|
} |
|
|
|
const createESMRawBuild = async () => { |
|
// development unminified build with source maps |
|
await buildDev(getConfig("dist/dev")); |
|
|
|
// production minified build without sourcemaps |
|
await buildProd(getConfig("dist/prod")); |
|
}; |
|
|
|
(async () => { |
|
await createESMRawBuild(); |
|
})();
|
|
|