trilium/apps/desktop/scripts/build.ts
2025-09-02 13:59:09 +03:00

46 lines
1.5 KiB
TypeScript

import { join } from "path";
import BuildHelper from "../../../scripts/build-utils";
import originalPackageJson from "../package.json" with { type: "json" };
import { writeFileSync } from "fs";
const build = new BuildHelper("apps/desktop");
async function main() {
await build.buildBackend([ "src/main.ts"]);
// Copy assets.
build.copy("src/assets", "assets/");
build.copy("/apps/server/src/assets", "assets/");
build.copy("/packages/share-theme/src/templates", "share-theme/templates/");
// Copy node modules dependencies
build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path", "@electron/remote" ]);
build.copy("/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js");
// Integrate the client.
build.triggerBuildAndCopyTo("apps/client", "public/");
build.deleteFromOutput("public/webpack-stats.json");
generatePackageJson();
}
function generatePackageJson() {
const { version, author, license, description, dependencies, devDependencies } = originalPackageJson;
const packageJson = {
name: "trilium",
main: "main.cjs",
version, author, license, description,
dependencies: {
"better-sqlite3": dependencies["better-sqlite3"],
},
devDependencies: {
electron: devDependencies.electron
},
config: {
forge: "../electron-forge/forge.config.ts"
}
};
writeFileSync(join(build.outDir, "package.json"), JSON.stringify(packageJson, null, "\t"), "utf-8");
}
main();