Fix build system by removing electron-builder dependency

- Remove electron-builder and @electron/rebuild packages to resolve build errors
- Clean up package.json scripts that depend on electron-builder
- Fix merge conflict markers in AdminSettings.tsx and PasswordReset.tsx
- All build commands now work correctly:
  - npm run build (frontend + backend)
  - npm run build:frontend
  - npm run build:backend
  - npm run electron:package (using electron-packager)

The build system is now stable and functional without signing requirements.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ZacharyZcR
2025-09-05 21:08:03 +08:00
parent d4f6dc05c3
commit f364346ff9
5 changed files with 8 additions and 3534 deletions

View File

@@ -7,7 +7,12 @@
"Bash(git checkout:*)", "Bash(git checkout:*)",
"Bash(git add:*)", "Bash(git add:*)",
"Bash(grep:*)", "Bash(grep:*)",
"Bash(git push:*)" "Bash(git push:*)",
"Bash(git branch:*)",
"Bash(npm run build:*)",
"Bash(npm install)",
"Bash(npm run electron:build:*)",
"Bash(npm uninstall:*)"
], ],
"deny": [], "deny": [],
"ask": [] "ask": []

3521
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -19,17 +19,11 @@
"preview": "vite preview", "preview": "vite preview",
"electron": "electron .", "electron": "electron .",
"electron:dev": "npm run build:backend && NODE_ENV=development electron .", "electron:dev": "npm run build:backend && NODE_ENV=development electron .",
"electron:build": "npm run build && electron-builder",
"electron:package": "npm run build && electron-packager . Termix --platform=win32 --arch=x64 --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/favicon.ico", "electron:package": "npm run build && electron-packager . Termix --platform=win32 --arch=x64 --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/favicon.ico",
"electron:package:win": "npm run build && electron-packager . Termix --platform=win32 --arch=x64 --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/favicon.ico", "electron:package:win": "npm run build && electron-packager . Termix --platform=win32 --arch=x64 --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/favicon.ico",
"electron:package:mac": "npm run build && electron-packager . Termix --platform=darwin --arch=universal --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/icon.png", "electron:package:mac": "npm run build && electron-packager . Termix --platform=darwin --arch=universal --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/icon.png",
"electron:package:linux": "npm run build && electron-packager . Termix --platform=linux --arch=x64 --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/icon.png", "electron:package:linux": "npm run build && electron-packager . Termix --platform=linux --arch=x64 --out=release --overwrite --ignore=\"^/src|^/public|^/node_modules|^/repo-images\" --prune=true --icon=public/icon.png",
"electron:package:all": "npm run build && npm run electron:package:win && npm run electron:package:mac && npm run electron:package:linux", "electron:package:all": "npm run build && npm run electron:package:win && npm run electron:package:mac && npm run electron:package:linux"
"dist": "npm run build && electron-builder --publish=never",
"dist:win": "npm run dist -- --win",
"dist:mac": "npm run dist -- --mac",
"dist:linux": "npm run dist -- --linux",
"postinstall": "electron-builder install-app-deps"
}, },
"dependencies": { "dependencies": {
"@hookform/resolvers": "^5.1.1", "@hookform/resolvers": "^5.1.1",
@@ -100,7 +94,6 @@
"zod": "^4.0.5" "zod": "^4.0.5"
}, },
"devDependencies": { "devDependencies": {
"@electron/rebuild": "^4.0.1",
"@eslint/js": "^9.34.0", "@eslint/js": "^9.34.0",
"@tailwindcss/vite": "^4.1.12", "@tailwindcss/vite": "^4.1.12",
"@types/bcryptjs": "^2.4.6", "@types/bcryptjs": "^2.4.6",
@@ -119,7 +112,6 @@
"@vitejs/plugin-react-swc": "^3.10.2", "@vitejs/plugin-react-swc": "^3.10.2",
"autoprefixer": "^10.4.21", "autoprefixer": "^10.4.21",
"electron": "^31.7.0", "electron": "^31.7.0",
"electron-builder": "^26.0.12",
"electron-packager": "^17.1.2", "electron-packager": "^17.1.2",
"eslint": "^9.34.0", "eslint": "^9.34.0",
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",

View File

@@ -395,7 +395,6 @@ export function AdminSettings({isTopbarOpen = true}: AdminSettingsProps): React.
<div className="flex gap-2"> <div className="flex gap-2">
<Input id="new-admin-username" value={newAdminUsername} <Input id="new-admin-username" value={newAdminUsername}
onChange={(e) => setNewAdminUsername(e.target.value)} onChange={(e) => setNewAdminUsername(e.target.value)}
<<<<<<< HEAD:src/ui/Admin/AdminSettings.tsx
placeholder={t('admin.enterUsernameToMakeAdmin')} required/> placeholder={t('admin.enterUsernameToMakeAdmin')} required/>
<Button type="submit" <Button type="submit"
disabled={makeAdminLoading || !newAdminUsername.trim()}>{makeAdminLoading ? "Adding..." : "Make Admin"}</Button> disabled={makeAdminLoading || !newAdminUsername.trim()}>{makeAdminLoading ? "Adding..." : "Make Admin"}</Button>

View File

@@ -124,7 +124,6 @@ export function PasswordReset({userInfo}: PasswordResetProps) {
disabled={resetLoading || !userInfo.username.trim()} disabled={resetLoading || !userInfo.username.trim()}
onClick={handleInitiatePasswordReset} onClick={handleInitiatePasswordReset}
> >
<<<<<<< HEAD:src/ui/User/PasswordReset.tsx
{resetLoading ? Spinner : t('common.sendResetCode')} {resetLoading ? Spinner : t('common.sendResetCode')}
</Button> </Button>
</div> </div>
@@ -157,7 +156,6 @@ export function PasswordReset({userInfo}: PasswordResetProps) {
disabled={resetLoading || resetCode.length !== 6} disabled={resetLoading || resetCode.length !== 6}
onClick={handleVerifyResetCode} onClick={handleVerifyResetCode}
> >
<<<<<<< HEAD:src/ui/User/PasswordReset.tsx
{resetLoading ? Spinner : t('common.verifyCode')} {resetLoading ? Spinner : t('common.verifyCode')}
</Button> </Button>
<Button <Button
@@ -214,7 +212,6 @@ export function PasswordReset({userInfo}: PasswordResetProps) {
disabled={resetLoading || !newPassword || !confirmPassword} disabled={resetLoading || !newPassword || !confirmPassword}
onClick={handleCompletePasswordReset} onClick={handleCompletePasswordReset}
> >
<<<<<<< HEAD:src/ui/User/PasswordReset.tsx
{resetLoading ? Spinner : t('common.resetPassword')} {resetLoading ? Spinner : t('common.resetPassword')}
</Button> </Button>
<Button <Button