buildBase.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const path = require("path");
  2. const { build } = require("esbuild");
  3. // contains all dependencies bundled inside
  4. const getConfig = (outdir) => ({
  5. outdir,
  6. bundle: true,
  7. format: "esm",
  8. entryPoints: ["src/index.ts"],
  9. entryNames: "[name]",
  10. assetNames: "[dir]/[name]",
  11. alias: {
  12. "@excalidraw/utils": path.resolve(__dirname, "../packages/utils/src"),
  13. },
  14. external: ["@excalidraw/common", "@excalidraw/element", "@excalidraw/math"],
  15. });
  16. function buildDev(config) {
  17. return build({
  18. ...config,
  19. sourcemap: true,
  20. define: {
  21. "import.meta.env": JSON.stringify({ DEV: true }),
  22. },
  23. });
  24. }
  25. function buildProd(config) {
  26. return build({
  27. ...config,
  28. minify: true,
  29. define: {
  30. "import.meta.env": JSON.stringify({ PROD: true }),
  31. },
  32. });
  33. }
  34. const createESMRawBuild = async () => {
  35. // development unminified build with source maps
  36. await buildDev(getConfig("dist/dev"));
  37. // production minified build without sourcemaps
  38. await buildProd(getConfig("dist/prod"));
  39. };
  40. (async () => {
  41. await createESMRawBuild();
  42. })();