validate.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. const fs = require('fs');
  2. const path = require('path');
  3. console.log('🔍 Validating Desktop App Structure...\n');
  4. // Check required files
  5. const requiredFiles = [
  6. 'main.js',
  7. 'package.json',
  8. 'index.html',
  9. 'home.html',
  10. 'js/script.js',
  11. 'js/components.js',
  12. 'css/style.css'
  13. ];
  14. let allFilesPresent = true;
  15. requiredFiles.forEach(file => {
  16. const filePath = path.join(__dirname, file);
  17. if (fs.existsSync(filePath)) {
  18. console.log(`✅ ${file} - Present`);
  19. } else {
  20. console.log(`❌ ${file} - Missing`);
  21. allFilesPresent = false;
  22. }
  23. });
  24. // Check API configuration
  25. try {
  26. const scriptContent = fs.readFileSync(path.join(__dirname, 'js/script.js'), 'utf8');
  27. if (scriptContent.includes('https://notes.lhamacorp.com/api/notes')) {
  28. console.log('✅ API_BASE - Correctly configured for production');
  29. } else {
  30. console.log('❌ API_BASE - Not configured for production');
  31. allFilesPresent = false;
  32. }
  33. } catch (error) {
  34. console.log('❌ Could not validate API configuration');
  35. allFilesPresent = false;
  36. }
  37. // Check package.json scripts
  38. try {
  39. const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8'));
  40. const requiredScripts = ['start', 'build', 'build-all', 'build-win', 'build-mac', 'build-linux'];
  41. console.log('\n📦 Build Scripts:');
  42. requiredScripts.forEach(script => {
  43. if (packageJson.scripts && packageJson.scripts[script]) {
  44. console.log(`✅ npm run ${script} - Available`);
  45. } else {
  46. console.log(`❌ npm run ${script} - Missing`);
  47. }
  48. });
  49. } catch (error) {
  50. console.log('❌ Could not validate package.json');
  51. }
  52. // Check if build output exists
  53. if (fs.existsSync(path.join(__dirname, 'dist/linux-unpacked/knotes-desktop'))) {
  54. console.log('\n🏗️ Build Status:');
  55. console.log('✅ Linux build - Completed successfully');
  56. console.log('📂 Executable: ./dist/linux-unpacked/knotes-desktop');
  57. }
  58. console.log('\n🎉 Desktop App Validation Complete!');
  59. console.log(allFilesPresent ? '✅ All components are properly configured' : '❌ Some issues found');
  60. console.log('\n📋 Next Steps:');
  61. console.log('1. Run "npm start" on a machine with GUI to test');
  62. console.log('2. Run "npm run build-linux" to create AppImage');
  63. console.log('3. Run "npm run build-win" on Windows to create installer');
  64. console.log('4. Run "npm run build-mac" on macOS to create DMG');