Description
- Electron-Builder Version: 25.0.5
- Node Version: 20.16.0
- Electron Version: 32.1.2
- Electron Type (current, beta, nightly): current
- Target: Mac (dmg/universal+zip) + Win (x64 nsis)
I am on an M2 Max Macbook Pro building for universal mac + windows. When running electron-builder --mac --win on electron-builder 25.0.5, 'installing native dependencies' results in a missing native dependency (sqlite3) for the windows build:
• electron-builder version=25.0.5 os=23.6.0
• loaded configuration file=/Users/dan/Projects/TestApp/electron-builder.yml
• writing effective config file=dist/builder-effective-config.yaml
• executing @electron/rebuild electronVersion=32.1.2 arch=x64 buildFromSource=false appDir=./
• installing native dependencies arch=x64
• preparing moduleName=sqlite3 arch=x64
• finished moduleName=sqlite3 arch=x64
• completed installing native dependencies
• packaging platform=darwin arch=x64 electron=32.1.2 appOutDir=dist/mac-universal-x64-temp
• executing @electron/rebuild electronVersion=32.1.2 arch=arm64 buildFromSource=false appDir=./
• installing native dependencies arch=arm64
• preparing moduleName=sqlite3 arch=arm64
• finished moduleName=sqlite3 arch=arm64
• completed installing native dependencies
• packaging platform=darwin arch=arm64 electron=32.1.2 appOutDir=dist/mac-universal-arm64-temp
• packaging platform=darwin arch=universal electron=32.1.2 appOutDir=dist/mac-universal
• signing file=dist/mac-universal/TestApp.app platform=darwin type=distribution identity=hidden provisioningProfile=none
• notarization successful
• building target=DMG arch=universal file=dist/TestApp-Mac-1.1.10-Installer.dmg
• building target=macOS zip arch=universal file=dist/TestApp-Mac-1.1.10-Installer.zip
• executing @electron/rebuild electronVersion=32.1.2 arch=x64 buildFromSource=false appDir=./
• installing native dependencies arch=x64
• Detected arm64 process, HFS+ is unavailable. Creating dmg with APFS - supports Mac OSX 10.12+
• preparing moduleName=sqlite3 arch=x64
• finished moduleName=sqlite3 arch=x64
• completed installing native dependencies
• packaging platform=win32 arch=x64 electron=32.1.2 appOutDir=dist/win-unpacked
• updating asar integrity executable resource executablePath=/Users/dan/Projects/TestApp/dist/win-unpacked/TestApp.exe
• building block map blockMapFile=dist/TestApp-Mac-1.1.10-Installer.dmg.blockmap
• building block map blockMapFile=dist/TestApp-Mac-1.1.10-Installer.zip.blockmap
• building target=nsis file=dist/TestApp-Windows-1.1.10-Setup.exe archs=x64 oneClick=true perMachine=true
• building block map blockMapFile=dist/TestApp-Windows-1.1.10-Setup.exe.blockmap
The app launches fine on Mac, but fails with a javascript 'cannot find module' error on Windows. When downgrading to electron-builder 24.13.3 'rebuilding native dependencies' is successfully called for the windows build and the app launches successfully on both platforms:
• electron-builder version=24.13.3 os=23.6.0
• loaded configuration file=/Users/dan/Projects/TestApp/electron-builder.yml
• writing effective config file=dist/builder-effective-config.yaml
• rebuilding native dependencies dependencies=sqlite3@5.1.6 platform=darwin arch=x64
• packaging platform=darwin arch=x64 electron=32.1.2 appOutDir=dist/mac-universal-x64-temp
• rebuilding native dependencies dependencies=sqlite3@5.1.6 platform=darwin arch=arm64
• packaging platform=darwin arch=arm64 electron=32.1.2 appOutDir=dist/mac-universal-arm64-temp
• packaging platform=darwin arch=universal electron=32.1.2 appOutDir=dist/mac-universal
• signing file=dist/mac-universal/TestApp.app platform=darwin type=distribution identity=hidden provisioningProfile=none
• notarization successful
• building target=DMG arch=universal file=dist/TestApp-Mac-1.1.10-Installer.dmg
• building target=macOS zip arch=universal file=dist/TestApp-Mac-1.1.10-Installer.zip
• Detected arm64 process, HFS+ is unavailable. Creating dmg with APFS - supports Mac OSX 10.12+
• rebuilding native dependencies dependencies=sqlite3@5.1.6 platform=win32 arch=x64
• packaging platform=win32 arch=x64 electron=32.1.2 appOutDir=dist/win-unpacked
• building block map blockMapFile=dist/TestApp-Mac-1.1.10-Installer.dmg.blockmap
The 25.0.5 build results in a "Cannot find module" javascript error upon app launch on Windows. I am using unpacked version of sqlite3 which requires the native rebuilds. I was struggling to follow the logs from 25.0.5, am unsure whether it isn't building the win x64 module at all, or failing to copy it in at the correct time, as I can see it did an rebuild for x64 but the app cannot launch as it can't find the rebuilt dependency on Windows.
Additionally, the uncaught exception on Windows specifically targets a cannot find module error via a missing file to 'resources\app.asar\node_modules\sqlite3....' even though I've configured this to be unpacked.
Simply rolling electron-builder back to 24.13.3 and running the same build again without any changes results in a successfully built app that can launch with the native dependency on all platforms.
asarUnpack:
- node_modules/sqlite3
mac:
target:
- target: "dmg"
arch:
- "universal"
- target: "zip"
arch:
- "universal"
win:
target:
- target: "nsis"
arch:
- "x64"
npmRebuild: true