⚡ fast build script
This commit is contained in:
		
							parent
							
								
									7db9086dd0
								
							
						
					
					
						commit
						a78baa048d
					
				
							
								
								
									
										37
									
								
								bundle/scripts/build.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								bundle/scripts/build.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | |||||||
|  | const { spawn } = require("child_process"); | ||||||
|  | const path = require("path"); | ||||||
|  | const { performance } = require("perf_hooks"); | ||||||
|  | 
 | ||||||
|  | let parts = "util,api,cdn,gateway,bundle".split(","); | ||||||
|  | 
 | ||||||
|  | // because npm run is slow we directly get the build script of the package.json script
 | ||||||
|  | 
 | ||||||
|  | function buildPackage(dir) { | ||||||
|  | 	const element = path.basename(dir); | ||||||
|  | 	const swcBin = path.join(dir, "node_modules", "@swc", "cli", "lib", "swc", "index.js"); | ||||||
|  | 
 | ||||||
|  | 	const child = spawn("node", `${swcBin} src --out-dir dist --sync`.split(" "), { | ||||||
|  | 		cwd: dir, | ||||||
|  | 		env: process.env, | ||||||
|  | 		shell: true, | ||||||
|  | 	}); | ||||||
|  | 	function log(data) { | ||||||
|  | 		console.log(`[${element}]`.padEnd(10, " ") + data.toString().slice(0, -1)); | ||||||
|  | 	} | ||||||
|  | 	child.stdout.on("data", log); | ||||||
|  | 	child.stderr.on("data", log); | ||||||
|  | 	child.on("error", (err) => console.error(element, err)); | ||||||
|  | 	return child; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // util needs to be compiled first as the others require it
 | ||||||
|  | 
 | ||||||
|  | const start = performance.now(); | ||||||
|  | 
 | ||||||
|  | for (const part of parts) { | ||||||
|  | 	buildPackage(path.join(__dirname, "..", "..", part)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | process.on("exit", () => { | ||||||
|  | 	console.log("[Build]   took " + Math.round(performance.now() - start) + "ms"); | ||||||
|  | }); | ||||||
| @ -1,18 +0,0 @@ | |||||||
| const { exec, spawn } = require("child_process"); |  | ||||||
| const { exitCode } = require("process"); |  | ||||||
| 
 |  | ||||||
| let parts = "api,cdn,gateway,util,bundle".split(","); |  | ||||||
| parts.forEach(element => { |  | ||||||
|     // exec(`npm --prefix ../${element} run build`, (error, stdout, stderr) => {
 |  | ||||||
|     //     if (error) {
 |  | ||||||
|     //         console.log(`error: ${error.message}`);
 |  | ||||||
|     //         return;
 |  | ||||||
|     //     }
 |  | ||||||
|     //     if (stderr) {
 |  | ||||||
|     //         console.log(`stderr: ${stderr}`);
 |  | ||||||
|     //         return;
 |  | ||||||
|     //     }
 |  | ||||||
|     //     console.log(`stdout: ${stdout}`);
 |  | ||||||
|     // });
 |  | ||||||
|     spawn("npm", ["run", "build"], {cwd: `../${element}`}); |  | ||||||
| }); |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Flam3rboy
						Flam3rboy