-
Notifications
You must be signed in to change notification settings - Fork 24
/
build-package.js
37 lines (29 loc) · 1.29 KB
/
build-package.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const path = require("path");
const fs = require("fs-extra");
const { execSync } = require("child_process");
// Read package.json to get the version
const packageJson = fs.readJsonSync("package.json");
const packageVersion = packageJson.version;
// Clean build directory
console.log("Cleaning build directory");
fs.removeSync("build");
// Create necessary directories
console.log("Creating build directory");
fs.mkdirSync("build", { recursive: true });
// Copy assets
console.log("Copying assets");
const assets = ["CHANGELOG.md", "LICENSE", "manifest.json", "pack_icon.png", "README.md"];
assets.forEach((asset) => {
fs.copyFileSync(asset, path.join("build", asset));
});
// Copy src/node_modules to build/scripts/node_modules
console.log("Copying src/node_modules to build/scripts/node_modules");
fs.copySync("src/node_modules", "build/scripts/node_modules");
// Build project using TypeScript
console.log("Building the project");
execSync("node ./node_modules/typescript/bin/tsc -p tsconfig.json");
// Create distribution zip file using 7-Zip
console.log("Creating distribution zip file");
const outputFile = `Paradox-AntiCheat-v${packageVersion}.${process.argv.includes("--mcpack") ? "mcpack" : "zip"}`;
execSync(`cd build && 7z a ${outputFile} .`);
console.log("Build process completed successfully.");