forked from trent_larson/crowd-funder-for-time-pwa
- Completely rewrite main.js for reliable asset loading - Update preload.js with proper security context isolation - Fix file:// protocol handling for application resources - Add proper error logging and reporting in Electron context - Disable service workers in Electron environment - Fix path resolution for assets in packaged application - Add prerequisite checking for Electron builds - Update electron-builder configuration The changes resolve persistent issues with: 1. Missing assets in packaged application 2. Incorrect path resolution in production builds 3. Service worker conflicts in desktop environment 4. Security context handling in preload script 5. Electron build process reliability
33 lines
934 B
JavaScript
33 lines
934 B
JavaScript
/**
|
|
* Electron-specific logger implementation
|
|
*/
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const { app } = require('electron');
|
|
|
|
// Create logs directory if it doesn't exist
|
|
const logsDir = path.join(app.getPath('userData'), 'logs');
|
|
if (!fs.existsSync(logsDir)) {
|
|
fs.mkdirSync(logsDir, { recursive: true });
|
|
}
|
|
|
|
const logFile = path.join(logsDir, `electron-${new Date().toISOString().split('T')[0]}.log`);
|
|
|
|
function log(level, message) {
|
|
const timestamp = new Date().toISOString();
|
|
const logMessage = `[${timestamp}] [${level}] ${message}\n`;
|
|
|
|
// Write to log file
|
|
fs.appendFileSync(logFile, logMessage);
|
|
|
|
// Also output to console
|
|
console[level.toLowerCase()](message);
|
|
}
|
|
|
|
module.exports = {
|
|
info: (message) => log('INFO', message),
|
|
warn: (message) => log('WARN', message),
|
|
error: (message) => log('ERROR', message),
|
|
debug: (message) => log('DEBUG', message),
|
|
getLogPath: () => logFile
|
|
};
|