Skip to content

'installing native dependencies' dependency not included for all platforms #8528

Closed
@dancarasco

Description

@dancarasco
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions