mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-10-31 19:04:35 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const path = require("path");
 | |
| 
 | |
| const { build } = require("esbuild");
 | |
| const { sassPlugin } = require("esbuild-sass-plugin");
 | |
| 
 | |
| const { woff2ServerPlugin } = require("./woff2/woff2-esbuild-plugins");
 | |
| 
 | |
| // contains all dependencies bundled inside
 | |
| const getConfig = (outdir) => ({
 | |
|   outdir,
 | |
|   bundle: true,
 | |
|   format: "esm",
 | |
|   entryPoints: ["src/index.ts"],
 | |
|   entryNames: "[name]",
 | |
|   assetNames: "[dir]/[name]",
 | |
|   alias: {
 | |
|     "@excalidraw/common": path.resolve(__dirname, "../packages/common/src"),
 | |
|     "@excalidraw/element": path.resolve(__dirname, "../packages/element/src"),
 | |
|     "@excalidraw/excalidraw": path.resolve(__dirname, "../packages/excalidraw"),
 | |
|     "@excalidraw/math": path.resolve(__dirname, "../packages/math/src"),
 | |
|     "@excalidraw/utils": path.resolve(__dirname, "../packages/utils/src"),
 | |
|   },
 | |
| });
 | |
| 
 | |
| function buildDev(config) {
 | |
|   return build({
 | |
|     ...config,
 | |
|     sourcemap: true,
 | |
|     plugins: [sassPlugin(), woff2ServerPlugin()],
 | |
|     define: {
 | |
|       "import.meta.env": JSON.stringify({ DEV: true }),
 | |
|     },
 | |
|   });
 | |
| }
 | |
| 
 | |
| function buildProd(config) {
 | |
|   return build({
 | |
|     ...config,
 | |
|     minify: true,
 | |
|     plugins: [
 | |
|       sassPlugin(),
 | |
|       woff2ServerPlugin({
 | |
|         outdir: `${config.outdir}/assets`,
 | |
|       }),
 | |
|     ],
 | |
|     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();
 | |
| })();
 | 
