chore(monorepo/electron): reintroduce electron forge

This commit is contained in:
Elian Doran 2025-04-19 01:08:44 +03:00
parent 132242bf14
commit 3935ae2df1
No known key found for this signature in database
5 changed files with 3806 additions and 23 deletions

View File

@ -21,10 +21,7 @@
"docs:edit": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=37741 electron ./electron-docs-main.ts .", "docs:edit": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=37741 electron ./electron-docs-main.ts .",
"docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"",
"demo:edit": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-demo TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=37741 electron ./electron-edit-demo.ts .", "demo:edit": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-demo TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=37741 electron ./electron-edit-demo.ts .",
"demo:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store nix-shell -p electron_33 --run \"electron ./electron-edit-demo.ts .\"", "demo:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store nix-shell -p electron_33 --run \"electron ./electron-edit-demo.ts .\"",\
"electron-forge:start": "npm run build:prepare-dist && cd ./build && electron-forge start",
"electron-forge:make": "npm run build:prepare-dist && cross-env DEBUG=electron-windows-installer:* electron-forge make ./build",
"electron-forge:package": "npm run build:prepare-dist && cd ./build && electron-forge package",
"docs:build": "typedoc", "docs:build": "typedoc",
"test": "npm run client:test && npm run server:test", "test": "npm run client:test && npm run server:test",
"client:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app", "client:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app",
@ -48,15 +45,7 @@
"sax": "1.4.1", "sax": "1.4.1",
"yauzl": "3.2.0" "yauzl": "3.2.0"
}, },
"devDependencies": { "devDependencies": {
"@electron-forge/cli": "7.8.0",
"@electron-forge/maker-deb": "7.8.0",
"@electron-forge/maker-dmg": "7.8.0",
"@electron-forge/maker-flatpak": "7.8.0",
"@electron-forge/maker-rpm": "7.8.0",
"@electron-forge/maker-squirrel": "7.8.0",
"@electron-forge/maker-zip": "7.8.0",
"@electron-forge/plugin-auto-unpack-natives": "7.8.0",
"@playwright/test": "1.51.1", "@playwright/test": "1.51.1",
"@stylistic/eslint-plugin": "4.2.0", "@stylistic/eslint-plugin": "4.2.0",
"@types/express": "5.0.1", "@types/express": "5.0.1",

View File

@ -1,2 +1,3 @@
build build
data data
dist

View File

@ -37,19 +37,20 @@ module.exports = {
...(process.platform === "darwin" ? [] : extraResourcesForPlatform), ...(process.platform === "darwin" ? [] : extraResourcesForPlatform),
// These always go in Resources // These always go in Resources
"translations/", "../server/translations/",
"node_modules/@highlightjs/cdn-assets/styles" "../../node_modules/@highlightjs/cdn-assets/styles"
], ],
afterPrune: [ afterPrune: [
(buildPath, _electronVersion, _platform, _arch, callback) => { (buildPath, _electronVersion, _platform, _arch, callback) => {
// buildPath is a temporary directory that electron-packager creates - it's in the form of // buildPath is a temporary directory that electron-packager creates - it's in the form of
// /tmp/electron-packager/tmp-SjJl0s/resources/app // /tmp/electron-packager/tmp-SjJl0s/resources/app
try { try {
const cleanupNodeModulesScript = path.join(buildPath, "bin", "cleanupNodeModules.ts"); const cleanupNodeModulesScript = path.join(buildPath, "build", "node_modules", "@triliumnext/server", "scripts", "cleanupNodeModules.ts");
// we don't have access to any devDeps like 'tsx' here, so use the built-in '--experimental-strip-types' flag instead // we don't have access to any devDeps like 'tsx' here, so use the built-in '--experimental-strip-types' flag instead
const command = `node --experimental-strip-types ${cleanupNodeModulesScript} "${buildPath}" --skip-prune-dev-deps`; const command = `node --experimental-strip-types ${cleanupNodeModulesScript} "${buildPath}" --skip-prune-dev-deps`;
// execSync throws, if above returns any non-zero exit code // execSync throws, if above returns any non-zero exit code
execSync(command); // TODO: Not working.
// execSync(command);
callback() callback()
} catch(err) { } catch(err) {
callback(err) callback(err)
@ -187,7 +188,7 @@ function getExtraResourcesForPlatform() {
const getScriptRessources = () => { const getScriptRessources = () => {
const scripts = ["trilium-portable", "trilium-safe-mode", "trilium-no-cert-check"]; const scripts = ["trilium-portable", "trilium-safe-mode", "trilium-no-cert-check"];
const scriptExt = (process.platform === "win32") ? "bat" : "sh"; const scriptExt = (process.platform === "win32") ? "bat" : "sh";
return scripts.map(script => `./tpl/${script}.${scriptExt}`); return scripts.map(script => `../server/tpl/${script}.${scriptExt}`);
} }
switch (process.platform) { switch (process.platform) {

View File

@ -17,15 +17,20 @@
"url": "https://github.com/TriliumNext/Notes" "url": "https://github.com/TriliumNext/Notes"
}, },
"type": "module", "type": "module",
"main": "index.js", "main": "src/electron-main.js",
"scripts": { "scripts": {
"start": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev electron ./src/electron-main.ts --inspect=5858 .", "start": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev electron ./src/electron-main.ts --inspect=5858 .",
"start-prod": "npm run build:prepare-dist && cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=prod electron ./build/src/electron-main.js --inspect=5858 .", "start-prod": "npm run build:prepare-dist && cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=prod electron ./build/src/electron-main.js --inspect=5858 .",
"postinstall": "electron-rebuild", "postinstall": "electron-rebuild",
"build:clean": "rimraf ./dist ./build", "build:clean": "rimraf ./dist ./build",
"build:copy-dist": "tsx ./scripts/copy-dist.ts", "build:copy-dist": "tsx ./scripts/copy-dist.ts",
"build:prepare-dist": "npm run build:clean && npm run build:copy-dist && npm run build:ts", "build:prepare-dist": "npm run build:clean && npm run build:copy-dist && npm run build:ts",
"build:ts": "tsc" "build:ts": "tsc",
"electron-forge:start": "npm run build:prepare-dist && cd ./build && electron-forge start",
"electron-forge:make": "npm run build:prepare-dist && cross-env DEBUG=electron-windows-installer:* electron-forge make ./build",
"electron-forge:package": "npm run build:prepare-dist && cd ./build && electron-forge package"
}, },
"dependencies": { "dependencies": {
"better-sqlite3": "^11.9.1", "better-sqlite3": "^11.9.1",
@ -37,6 +42,14 @@
"@types/electron-squirrel-startup": "1.0.2", "@types/electron-squirrel-startup": "1.0.2",
"electron": "35.1.5", "electron": "35.1.5",
"@electron/rebuild": "3.7.2", "@electron/rebuild": "3.7.2",
"tsx": "4.19.3" "tsx": "4.19.3",
"@electron-forge/cli": "7.8.0",
"@electron-forge/maker-deb": "7.8.0",
"@electron-forge/maker-dmg": "7.8.0",
"@electron-forge/maker-flatpak": "7.8.0",
"@electron-forge/maker-rpm": "7.8.0",
"@electron-forge/maker-squirrel": "7.8.0",
"@electron-forge/maker-zip": "7.8.0",
"@electron-forge/plugin-auto-unpack-natives": "7.8.0"
} }
} }

3781
package-lock.json generated

File diff suppressed because it is too large Load Diff