capacitor-community / electron

Deploy your Capacitor apps to Linux, Mac, and Windows desktops, with the Electron platform! 🖥️
https://capacitor-community.github.io/electron/
MIT License
318 stars 58 forks source link

vague errors executing my first windows electron exe #293

Open laurencefass opened 1 week ago

laurencefass commented 1 week ago

Ive recently installed capacitor vscode extension and trying to work with minimal documentation to create an electron image.

To keep things simple i used the sidemenu template from the vscode ionic extension. I have proven this works on web and as an Android image.

There appear to be a lot of steps missing from the cap-electron docs to get dist executable but ive tried piecing things together from the internet and AI and came up with this package.json

{
  "name": "sidemenu",
  "version": "1.0.0",
  "description": "An Amazing Capacitor App",
  "author": {
    "name": "",
    "email": ""
  },
  "repository": {
    "type": "git",
    "url": ""
  },
  "license": "MIT",
  "main": "build/src/index.js",
  "scripts": {
    "build": "tsc && electron-rebuild",
    "electron:start-live": "node ./live-runner.js",
    "electron:start": "npm run build && electron --inspect=5858 ./",
    "electron:pack": "npm run build && electron-builder build --dir -c ./electron-builder.config.json",
    "electron:make": "npm run build && electron-builder build -c ./electron-builder.config.json -p always",
    "electron:build": "electron-builder"
  },
  "dependencies": {
    "@capacitor-community/electron": "^5.0.0",
    "chokidar": "~3.5.3",
    "electron-is-dev": "~2.0.0",
    "electron-serve": "~1.1.0",
    "electron-unhandled": "~4.0.1",
    "electron-updater": "^5.3.0",
    "electron-window-state": "^5.0.3"
  },
  "devDependencies": {
    "electron": "^26.2.2",
    "electron-builder": "~23.6.0",
    "typescript": "^5.0.4"
  },
  "keywords": [
    "capacitor",
    "electron"
  ],
  "build": {
    "appId": "com.yourapp.id",
    "productName": "YourAppName",
    "directories": {
      "output": "dist"
    },
    "files": [
      "build/**/*",
      "main.js"
    ],
    "win": {
      "target": [
        "nsis",
        "portable"
      ]
    }
  }
}

i used electron-builder to create the image. I have no idea if this is correct, current or best practice but it did produce exe outputs referenced above.

root@vps765527:/docker/apps-root/capacitor/apps/sidemenu/electron# npx electron-builder --win
  • electron-builder  version=23.6.0 os=4.19.0-26-cloud-amd64
  • loaded configuration  file=package.json ("build" field)
  • electron-rebuild not required if you use electron-builder, please consider to remove excess dependency from devDependencies

To ensure your native dependencies are always matched electron version, simply add script `"postinstall": "electron-builder install-app-deps" to your `package.json`
  • writing effective config  file=dist/builder-effective-config.yaml
  • packaging       platform=win32 arch=x64 electron=26.6.10 appOutDir=dist/win-unpacked
  • default Electron icon is used  reason=application icon is not set
  • building        target=nsis file=dist/YourAppName Setup 1.0.0.exe archs=x64 oneClick=true perMachine=false
  • building        target=portable file=dist/YourAppName 1.0.0.exe archs=x64
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.1/nsis-3.0.4.1.7z size=1.3 MB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.1/nsis-3.0.4.1.7z duration=920ms
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.4.1/nsis-resources-3.4.1.7z size=731 kB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.4.1/nsis-resources-3.4.1.7z duration=938ms
  • building block map  blockMapFile=dist/YourAppName Setup 1.0.0.exe.blockmap

I have managed to get an app.exe and an app Setup.exe in the dist folder and copied across my windows os.

When I run the exe first error is:

image

which when i copy the error reads:

Unhandled Promise Rejection
Error: ENOENT: no such file or directory, open 'C:/Users/user/AppData/Local/Temp/2iSquBK1PUzJ9fhE8MYHOmMnKWK/resources/app-update.yml'

The app then loads with no rendering

image

It would be great to get an idea on how to do this properly.

Thanks