mirror of
https://github.com/zadam/trilium.git
synced 2026-05-07 17:36:26 +02:00
Build edit-docs as standalone package using makeApp
Changed edit-docs from a simple wrapper script to a properly built Nix package using makeApp, similar to how desktop and server are built. Changes: - Added build script to apps/edit-docs/package.json - Created apps/edit-docs/scripts/build.ts based on desktop's build script - Added edit-docs:build task to root package.json - Changed flake.nix to use makeApp which: - Builds edit-docs with all dependencies bundled - Creates a standalone trilium-edit-docs executable - Can be installed with 'nix profile install' and run from any directory This makes edit-docs truly reusable - it can now be installed and run from any project without requiring the Trilium source tree.
This commit is contained in:
40
apps/edit-docs/scripts/build.ts
Normal file
40
apps/edit-docs/scripts/build.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { writeFileSync } from "fs";
|
||||
import { join } from "path";
|
||||
|
||||
import BuildHelper from "../../../scripts/build-utils";
|
||||
import originalPackageJson from "../package.json" with { type: "json" };
|
||||
|
||||
const build = new BuildHelper("apps/edit-docs");
|
||||
|
||||
async function main() {
|
||||
await build.buildBackend(["src/edit-docs.ts", "src/utils.ts"]);
|
||||
|
||||
// Copy assets from server (needed for DB initialization)
|
||||
build.copy("/apps/server/src/assets", "assets/");
|
||||
build.triggerBuildAndCopyTo("packages/share-theme", "share-theme/assets/");
|
||||
build.copy("/packages/share-theme/src/templates", "share-theme/templates/");
|
||||
build.copy("/node_modules/ckeditor5/dist/ckeditor5-content.css", "ckeditor5-content.css");
|
||||
build.buildFrontend();
|
||||
|
||||
// Copy node modules dependencies
|
||||
build.copyNodeModules(["better-sqlite3", "bindings", "file-uri-to-path", "@electron/remote"]);
|
||||
|
||||
generatePackageJson();
|
||||
}
|
||||
|
||||
function generatePackageJson() {
|
||||
const { version, author, license, description, dependencies, devDependencies } = originalPackageJson;
|
||||
const packageJson = {
|
||||
name: "trilium-edit-docs",
|
||||
main: "edit-docs.cjs",
|
||||
version,
|
||||
author,
|
||||
license,
|
||||
description,
|
||||
dependencies: {"better-sqlite3": dependencies["better-sqlite3"]},
|
||||
devDependencies: {electron: devDependencies.electron},
|
||||
};
|
||||
writeFileSync(join(build.outDir, "package.json"), JSON.stringify(packageJson, null, "\t"), "utf-8");
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user