buildShared.js 871 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. const fs = require("fs");
  2. const { build } = require("esbuild");
  3. const rawConfig = {
  4. entryPoints: ["src/index.ts"],
  5. bundle: true,
  6. format: "esm",
  7. metafile: true,
  8. treeShaking: true,
  9. external: ["*.scss"],
  10. };
  11. const createESMRawBuild = async () => {
  12. // Development unminified build with source maps
  13. const dev = await build({
  14. ...rawConfig,
  15. outdir: "dist/dev",
  16. sourcemap: true,
  17. define: {
  18. "import.meta.env": JSON.stringify({ DEV: true }),
  19. },
  20. });
  21. fs.writeFileSync("meta-dev.json", JSON.stringify(dev.metafile));
  22. // production minified build without sourcemaps
  23. const prod = await build({
  24. ...rawConfig,
  25. outdir: "dist/prod",
  26. minify: true,
  27. define: {
  28. "import.meta.env": JSON.stringify({ PROD: true }),
  29. },
  30. });
  31. fs.writeFileSync("meta-prod.json", JSON.stringify(prod.metafile));
  32. };
  33. createESMRawBuild();