47 lines
1.6 KiB
JavaScript
47 lines
1.6 KiB
JavaScript
module.exports = {
|
|
appId: 'com.carryyourlive.desktop',
|
|
productName: 'Carry Your Live',
|
|
copyright: 'Copyright © 2026',
|
|
|
|
directories: {
|
|
output: 'desktop-build',
|
|
buildResources: 'build',
|
|
},
|
|
|
|
// Override the entry point in the packaged app (repo keeps expo-router/entry
|
|
// as `main` so `expo start` keeps working).
|
|
extraMetadata: {
|
|
main: 'electron/main.js',
|
|
},
|
|
|
|
// The Electron shell needs zero runtime dependencies: main/preload use Node
|
|
// built-ins only, and the renderer is fully bundled by Metro into dist/.
|
|
// Returning false tells electron-builder that node_modules are handled
|
|
// externally — i.e. don't bundle production deps (expo, react-native, ...)
|
|
// into the package. This keeps the deb ~100x smaller.
|
|
// NOTE: do not set npmRebuild:false here — installAppDependencies()
|
|
// short-circuits on it *before* evaluating beforeBuild, which would
|
|
// re-enable bundling of node_modules.
|
|
beforeBuild: async () => false,
|
|
// Sanity check validates the ORIGINAL package.json `main` (expo-router/entry)
|
|
// against the asar, which no longer exists once deps are excluded.
|
|
// The real entry point is set via extraMetadata.main above.
|
|
disableSanityCheckAsar: true,
|
|
|
|
files: ['dist/**/*', 'electron/**/*', 'assets/icon.png', 'package.json'],
|
|
|
|
// Icons are generated from build/icon.png (1024x1024) for each platform.
|
|
mac: {
|
|
category: 'public.app-category.productivity',
|
|
target: ['dmg', 'zip'],
|
|
},
|
|
win: {
|
|
target: ['nsis'],
|
|
},
|
|
linux: {
|
|
category: 'Productivity',
|
|
maintainer: 'carry-your-live',
|
|
target: ['deb', 'AppImage'],
|
|
},
|
|
}
|