Study & Project ✏️/Bug & Report 🐞

[Error electron-forge] You may need to re-bundle the app using Electron Packager's "executableName" option.

JM 2023. 5. 4. 16:44
반응형

First, I'll tell you about my work environment and start.

 

Desktop: Window10

Arch: AMD

WSL: Linux Ubuntu (Arch: AMD)

 

Compile Target: Linux (Arch: arm64)

 


 

Briefly, you are trying to run a cross-compile from a Windows environment to Linux (arm64).

 

If the error

You may need to re-bundle the app using Electron Packager's "executableName" option.

appears, it's probably a situation where you're trying to cross-compile, so let's find out more.

 

1. Reason

There are two compilation methods described on the official page of electron-forge.

https://www.electronforge.io/configuration

 

Configuration - Electron Forge

This property can be used to identify different build configurations. Normally, this property is set to the channel the build will release to, or some other unique identifier. For example, common values are prod and beta. This identifier can be used in con

www.electronforge.io

1. Trying to compile by writing config in package.json

2. Attempting to compile by creating forge.config.js in the root directory

 

The error occurred when attempting to compile by writing config in 1. package.json.

If you look at the existing package.json

"config": {
    "forge": {
      "packagerConfig": {},
      "makers": [
        {
          "name": "@electron-forge/maker-squirrel",
          "config": {
            "name": "my_electron_app"
          }
        },
        {
          "name": "@electron-forge/maker-zip",
          "platforms": [
            "darwin"
          ]
        },
        {
          "name": "@electron-forge/maker-deb",
          "config": {}
        },
        {
          "name": "@electron-forge/maker-rpm",
          "config": {}
        }
      ]
    }
  },

In this way, the values for forge are written in the config.

 

Error - You may need to re-bundle the app using Electron Packager's "executableName" option.

I tried to run it in "packagerConfig":{} based on this error, but I got the same error again.

 

2. Solved

So to solve this problem

2. Set forge.config.js to make executableName properly configured.

https://www.electronforge.io/configuration

 

Configuration - Electron Forge

This property can be used to identify different build configurations. Normally, this property is set to the channel the build will release to, or some other unique identifier. For example, common values are prod and beta. This identifier can be used in con

www.electronforge.io

 

Before that, as explained in electron-forge, there should be no config.forge in package.json, but it is said that forge.config.js is used in the root directory, so let's delete the config of package.json written above.

 

Below is the forge.config.js I defined.

// forge.config.js
module.exports = {
    packagerConfig: {
    	// set config executableName
        executableName: "my-electron-app",
        icon: './icon',
    },
    makers: [
        {
            name: '@electron-forge/maker-deb',
            executableName: "my-electron-app",
            config: {
                options: {
                    icon: './icon.png',
                    name: 'my-electron-app',
                    productName: 'my-electron-app'
                }
            }
        }
    ],
    // set output directory name
    buildIdentifier: 'my-electron-app-build',
}

Since the package asked you to set the executableName property, it will set the packageConfig.executableName.

 

For reference, the parts related to platform, arch, dir, out, and electronVersion in forge.config.js are not defined and are used through cli.

3. Execution

Now, let's type make cli and check the result

// compile to platform->host, arch->arm64
npm run make -- --arch=arm64

It's compiled well!!!



For reference, information on electron-forge's cli can be obtained here.

https://www.electronforge.io/cli

 

CLI - Electron Forge

Target architecture to make for. Defaults to the arch that you're running on (the "host" arch). Allowed values are: "ia32", "x64", "armv7l", "arm64", "universal", or "mips64el". Multiple values should be comma-separated.

www.electronforge.io