feat(monorepo/electron): allow running prod build

This commit is contained in:
Elian Doran 2025-04-19 00:45:39 +03:00
parent e027f7e37b
commit d714c047a1
No known key found for this signature in database
4 changed files with 37 additions and 4 deletions

View File

@ -12,8 +12,7 @@
"server:switch": "rimraf ./node_modules/better-sqlite3 && npm install",
"electron:start-no-dir": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_PORT=37742 electron --inspect=5858 .",
"electron:start-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-main.ts --inspect=5858 .\"",
"electron:start-nix-no-dir": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_PORT=37742 nix-shell -p electron_33 --run \"electron ./electron-main.ts --inspect=5858 .\"",
"electron:start-prod": "npm run build:prepare-dist && cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=prod electron ./dist/electron-main.js --inspect=5858 .",
"electron:start-nix-no-dir": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_PORT=37742 nix-shell -p electron_33 --run \"electron ./electron-main.ts --inspect=5858 .\"",
"electron:start-prod-no-dir": "npm run build:prepare-dist && cross-env TRILIUM_ENV=prod electron --inspect=5858 .",
"electron:start-prod-nix": "electron-rebuild --version 33.3.1 && npm run build:prepare-dist && cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./dist/electron-main.js --inspect=5858 .\"",
"electron:start-prod-nix-no-dir": "electron-rebuild --version 33.3.1 && npm run build:prepare-dist && cross-env TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./dist/electron-main.js --inspect=5858 .\"",

View File

@ -20,8 +20,12 @@
"main": "index.js",
"scripts": {
"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 .",
"postinstall": "electron-rebuild",
"build:copy-dist": "tsx ./scripts/copy-dist.ts"
"build:clean": "rimraf ./dist ./build",
"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:ts": "tsc"
},
"dependencies": {
"better-sqlite3": "^11.9.1",

View File

@ -1,3 +1,4 @@
import { execSync } from "child_process";
import fs from "fs-extra";
import path from "path";
@ -15,12 +16,13 @@ try {
/**
* Copy the server.
*/
fs.copySync("../server/build", DEST_DIR);
fs.copySync("../server/build", path.join(DEST_DIR, "node_modules", "@triliumnext/server"));
/**
* Copy assets.
*/
const assetsToCopy = new Set([
"./package.json",
"./forge.config.cjs",
"./scripts/electron-forge/desktop.ejs",
"./scripts/electron-forge/sign-windows.cjs",
@ -40,6 +42,12 @@ try {
fs.copySync(dir, path.join(PUBLIC_DIR, path.basename(dir)));
}
/*
* Extract and rebuild the bettersqlite node module.
*/
fs.moveSync(path.join(DEST_DIR, "node_modules/@triliumnext/server/node_modules/better-sqlite3"), path.join(DEST_DIR, "node_modules/better-sqlite3"));
execSync("npm run postinstall", { cwd: DEST_DIR });
console.log("Copying complete!")
} catch(err) {

View File

@ -0,0 +1,22 @@
{
"compilerOptions": {
"module": "NodeNext",
"declaration": false,
"sourceMap": true,
"outDir": "./build/src",
"strict": true,
"noImplicitAny": true,
"resolveJsonModule": true,
"lib": ["ES2023"],
"downlevelIteration": true,
"skipLibCheck": true,
"esModuleInterop": true,
"verbatimModuleSyntax": true,
"allowJs": true
},
"include": [ "./src/**/*.ts" ],
"files": [
"../server/src/types.d.ts",
"../server/src/express.d.ts",
]
}