From ce0fd3cec242505a3bbb4165517ff045d5614847 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 13:59:09 +0300 Subject: [PATCH] chore(dx/desktop): get forge to run --- apps/client/vite.config.mts | 2 +- apps/desktop/package.json | 30 +++---------- apps/desktop/scripts/build.ts | 5 ++- pnpm-lock.yaml | 83 +++++++++++++++++++++++++++++------ scripts/build-utils.ts | 24 ++++++++-- 5 files changed, 100 insertions(+), 44 deletions(-) diff --git a/apps/client/vite.config.mts b/apps/client/vite.config.mts index a07d6120f..04a5b0911 100644 --- a/apps/client/vite.config.mts +++ b/apps/client/vite.config.mts @@ -29,7 +29,7 @@ if (!isDev) { structured: true, targets: [ { - src: "node_modules/@excalidraw/excalidraw/dist/prod/fonts/*", + src: "../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/*", dest: "", } ] diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 1eb5233ad..036745fe2 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -15,6 +15,7 @@ }, "devDependencies": { "@types/electron-squirrel-startup": "1.0.2", + "@triliumnext/commons": "workspace:*", "@triliumnext/server": "workspace:*", "copy-webpack-plugin": "13.0.1", "electron": "37.4.0", @@ -27,14 +28,14 @@ "@electron-forge/maker-zip": "7.8.3", "@electron-forge/plugin-auto-unpack-natives": "7.8.3", "prebuild-install": "^7.1.1" - }, - "config": { - "forge": "./electron-forge/forge.config.ts" - }, + }, "scripts": { "dev": "tsx scripts/start.mts", "build": "tsx scripts/build.ts", "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", + "electron-forge:make": "pnpm build && electron-forge make dist", + "electron-forge:package": "pnpm build && electron-forge package dist", + "electron-forge:start": "pnpm build && electron-forge start dist", "postinstall": "tsx scripts/rebuild.mts" }, "license": "AGPL-3.0-only", @@ -133,27 +134,6 @@ "forwardAllArgs": false } } - }, - "electron-forge:make": { - "dependsOn": [ - "build", - "rebuild-deps" - ], - "command": "pnpm -C apps/desktop exec cross-env NODE_INSTALLER=npm electron-forge make dist" - }, - "electron-forge:package": { - "dependsOn": [ - "build", - "rebuild-deps" - ], - "command": "pnpm -C apps/desktop exec cross-env NODE_INSTALLER=npm electron-forge package dist" - }, - "electron-forge:start": { - "dependsOn": [ - "build", - "rebuild-deps" - ], - "command": "pnpm -C apps/desktop exec cross-env NODE_INSTALLER=npm TRILIUM_DATA_DIR=./data electron-forge start dist" } } } diff --git a/apps/desktop/scripts/build.ts b/apps/desktop/scripts/build.ts index 1b42b4eab..c0c7bdb73 100644 --- a/apps/desktop/scripts/build.ts +++ b/apps/desktop/scripts/build.ts @@ -15,7 +15,7 @@ async function main() { // Copy node modules dependencies build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path", "@electron/remote" ]); - build.copy("/apps/server/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); + 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/"); @@ -35,6 +35,9 @@ function generatePackageJson() { }, devDependencies: { electron: devDependencies.electron + }, + config: { + forge: "../electron-forge/forge.config.ts" } }; writeFileSync(join(build.outDir, "package.json"), JSON.stringify(packageJson, null, "\t"), "utf-8"); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2cba94d0..46c12a288 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -368,6 +368,9 @@ importers: '@electron-forge/plugin-auto-unpack-natives': specifier: 7.8.3 version: 7.8.3 + '@triliumnext/commons': + specifier: workspace:* + version: link:../../packages/commons '@triliumnext/server': specifier: workspace:* version: link:../server @@ -14578,8 +14581,6 @@ snapshots: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-upload': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-ai@46.0.2': dependencies: @@ -14704,16 +14705,12 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-cloud-services@46.0.2': dependencies: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-code-block@46.0.2(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -14725,6 +14722,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-collaboration-core@46.0.2': dependencies: @@ -14738,6 +14737,8 @@ snapshots: '@types/luxon': 3.6.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) luxon: 3.6.1 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-comments@46.0.2': dependencies: @@ -14759,6 +14760,8 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-collaboration: 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-core@46.0.2': dependencies: @@ -14767,8 +14770,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-watchdog': 46.0.2 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: @@ -14933,8 +14934,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@46.0.2': dependencies: @@ -14944,8 +14943,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@46.0.2': dependencies: @@ -14955,8 +14952,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-inline@46.0.2': dependencies: @@ -14990,6 +14985,8 @@ snapshots: '@ckeditor/ckeditor5-table': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@46.0.2': dependencies: @@ -15002,6 +14999,8 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 fuzzysort: 3.1.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-engine@46.0.2': dependencies: @@ -15044,6 +15043,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@46.0.2': dependencies: @@ -15057,6 +15058,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-find-and-replace@46.0.2': dependencies: @@ -15075,6 +15078,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-format-painter@46.0.2': dependencies: @@ -15094,6 +15099,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-heading@46.0.2': dependencies: @@ -15104,6 +15111,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-highlight@46.0.2': dependencies: @@ -15112,6 +15121,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@46.0.2': dependencies: @@ -15130,6 +15141,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-html-support@46.0.2': dependencies: @@ -15145,6 +15158,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-icons@46.0.2': {} @@ -15162,6 +15177,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-import-word@46.0.2': dependencies: @@ -15174,6 +15191,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@46.0.2': dependencies: @@ -15185,6 +15204,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-inspector@5.0.0': {} @@ -15194,6 +15215,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-line-height@46.0.2': dependencies: @@ -15217,6 +15240,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-list-multi-level@46.0.2': dependencies: @@ -15240,6 +15265,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-markdown-gfm@46.0.2': dependencies: @@ -15277,6 +15304,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@46.0.2(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -15286,6 +15315,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-merge-fields@46.0.2': dependencies: @@ -15298,6 +15329,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-minimap@46.0.2': dependencies: @@ -15306,6 +15339,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-operations-compressor@46.0.2': dependencies: @@ -15358,6 +15393,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-pagination@46.0.2': dependencies: @@ -15464,6 +15501,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-slash-command@46.0.2': dependencies: @@ -15476,6 +15515,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@46.0.2': dependencies: @@ -15502,6 +15543,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-special-characters@46.0.2': dependencies: @@ -15523,6 +15566,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-table@46.0.2': dependencies: @@ -15535,6 +15580,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-template@46.0.2': dependencies: @@ -15577,6 +15624,8 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-collaboration: 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-typing@46.0.2': dependencies: @@ -15643,6 +15692,8 @@ snapshots: '@ckeditor/ckeditor5-engine': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-widget@46.0.2': dependencies: @@ -15662,6 +15713,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: @@ -20653,6 +20706,8 @@ snapshots: ckeditor5-collaboration@46.0.2: dependencies: '@ckeditor/ckeditor5-collaboration-core': 46.0.2 + transitivePeerDependencies: + - supports-color ckeditor5-premium-features@46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts index d8207d4ed..8da5be9d1 100644 --- a/scripts/build-utils.ts +++ b/scripts/build-utils.ts @@ -1,6 +1,6 @@ import { execSync } from "child_process"; import { build as esbuild } from "esbuild"; -import { rmSync } from "fs"; +import { cpSync, existsSync, rmSync } from "fs"; import { copySync, emptyDirSync, mkdirpSync } from "fs-extra"; import { join } from "path"; @@ -73,9 +73,27 @@ export default class BuildHelper { } copyNodeModules(nodeModules: string[]) { - for (const module of nodeModules) { - this.copy(`node_modules/${module}`, `node_modules/${module}/`); + for (const moduleName of nodeModules) { + const sourceDir = tryPath([ + join(this.projectDir, "node_modules", moduleName), + join(this.rootDir, "node_modules", moduleName) + ]); + + const destDir = join(this.outDir, "node_modules", moduleName); + mkdirpSync(destDir); + cpSync(sourceDir, destDir, { recursive: true, dereference: true }); } } } + +function tryPath(paths: string[]) { + for (const path of paths) { + if (existsSync(path)) { + return path; + } + } + + console.error("Unable to find any of the paths:", paths); + process.exit(1); +}