Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error in rebuilding native dependency on win10 #8426

Open
kerwinxu opened this issue Aug 20, 2024 · 31 comments · Fixed by develar/app-builder#132
Open

error in rebuilding native dependency on win10 #8426

kerwinxu opened this issue Aug 20, 2024 · 31 comments · Fixed by develar/app-builder#132

Comments

@kerwinxu
Copy link

kindly the below error

rebuilding native dependencies  dependencies=@serialport/bindings-cpp@12.0.1 platform=win32 arch=x64
  • rebuilding native dependency  name=@serialport/bindings-cpp version=12.0.1
  ⨯ cannot execute  cause=fork/exec C:\Users\kerwin\.yarn\releases\yarn-1.22.19.cjs: %1 is not a valid Win32 application.
                    command='C:\Users\kerwin\.yarn\releases\yarn-1.22.19.cjs' run install
                    workingDir=C:\Users\kerwin\Desktop\com_helper\node_modules\@serialport\bindings-cpp
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

but i can Manually build.

node-gyp configure
gyp info it worked if it ends with ok
gyp info using node-gyp@10.2.0
gyp info using node@20.16.0 | win32 | x64
gyp info find Python using Python version 3.11.5 found at "C:\Users\kerwin\AppData\Local\Programs\Python\Python311\python.exe"

gyp info find VS using VS2022 (17.5.33424.131) found at:
gyp info find VS "d:\Program Files\Microsoft Visual Studio\2022\Community"
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\Users\kerwin\AppData\Local\Programs\Python\Python311\python.exe
gyp info spawn args [
gyp info spawn args 'C:\\Users\\kerwin\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'msvs',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\kerwin\\Desktop\\com_helper\\node_modules\\@serialport\\bindings-cpp\\build\\config.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\kerwin\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\kerwin\\AppData\\Local\\node-gyp\\Cache\\20.16.0\\include\\node\\common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=C:\\Users\\kerwin\\AppData\\Local\\node-gyp\\Cache\\20.16.0',
gyp info spawn args '-Dnode_gyp_dir=C:\\Users\\kerwin\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\node-gyp',
gyp info spawn args '-Dnode_lib_file=C:\\\\Users\\\\kerwin\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\20.16.0\\\\<(target_arch)\\\\node.lib',
gyp info spawn args '-Dmodule_root_dir=C:\\Users\\kerwin\\Desktop\\com_helper\\node_modules\\@serialport\\bindings-cpp',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'C:\\Users\\kerwin\\Desktop\\com_helper\\node_modules\\@serialport\\bindings-cpp\\build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info ok
C:\Users\kerwin\Desktop\com_helper\node_modules\@serialport\bindings-cpp>node-gyp rebuild
gyp info it worked if it ends with ok
gyp info using node-gyp@10.2.0
gyp info using node@20.16.0 | win32 | x64
gyp info find Python using Python version 3.11.5 found at "C:\Users\kerwin\AppData\Local\Programs\Python\Python311\python.exe"

gyp info find VS using VS2022 (17.5.33424.131) found at:
gyp info find VS "d:\Program Files\Microsoft Visual Studio\2022\Community"
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\Users\kerwin\AppData\Local\Programs\Python\Python311\python.exe
gyp info spawn args [
gyp info spawn args 'C:\\Users\\kerwin\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'msvs',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\kerwin\\Desktop\\com_helper\\node_modules\\@serialport\\bindings-cpp\\build\\config.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\kerwin\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\Users\\kerwin\\AppData\\Local\\node-gyp\\Cache\\20.16.0\\include\\node\\common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=C:\\Users\\kerwin\\AppData\\Local\\node-gyp\\Cache\\20.16.0',
gyp info spawn args '-Dnode_gyp_dir=C:\\Users\\kerwin\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\node-gyp',
gyp info spawn args '-Dnode_lib_file=C:\\\\Users\\\\kerwin\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\20.16.0\\\\<(target_arch)\\\\node.lib',
gyp info spawn args '-Dmodule_root_dir=C:\\Users\\kerwin\\Desktop\\com_helper\\node_modules\\@serialport\\bindings-cpp',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'C:\\Users\\kerwin\\Desktop\\com_helper\\node_modules\\@serialport\\bindings-cpp\\build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn d:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe
gyp info spawn args [
gyp info spawn args 'build\\binding.sln',
gyp info spawn args '/clp:Verbosity=minimal',
gyp info spawn args '/nologo',
gyp info spawn args '/p:Configuration=Release;Platform=x64'
gyp info spawn args ]
在此解决方案中一次生成一个项目。若要启用并行生成,请添加“-m”开关。

  serialport.cpp
  serialport_win.cpp
  win_delay_load_hook.cc
    正在创建库 C:\Users\kerwin\Desktop\com_helper\node_modules\@serialport\bindings-cpp\build\Release\bindings.lib 和对 象 C:\Us
  ers\kerwin\Desktop\com_helper\node_modules\@serialport\bindings-cpp\build\Release\bindings.exp
  bindings.vcxproj -> C:\Users\kerwin\Desktop\com_helper\node_modules\@serialport\bindings-cpp\build\Release\\bindings.
  node
gyp info ok
@mmaietta
Copy link
Collaborator

@kerwinxu this looks like 24.13.13 logs for electron-builder I think. If so, can you try next tag v25.0.5? We upgraded to use upstream/official electron/rebuild package for handling native modules.

@TheCrypt0
Copy link

We faced the same issue and your suggestion actually worked, @mmaietta thanks!

Unfortunately, using the v25.0.5 fixes the build on Windows but now is broken on Mac. 😢

Here is the output on Mac OS Sonoma 14.6.1 :

dist-electron/preload/index.mjs  1.91 kB │ gzip: 0.88 kB
✓ built in 8ms
  • electron-builder  version=25.0.5 os=23.6.0
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=out/builder-effective-config.yaml
  ⨯ open /FULL_PATH_REDACTED/node_modules/create-hash/md5.js/package.json: not a directory
github.com/develar/app-builder/pkg/node-modules.(*Collector).resolveDependency
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:236
github.com/develar/app-builder/pkg/node-modules.(*Collector).processDependencies
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:122
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:64
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:80
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:80
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:80
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:80
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:80
github.com/develar/app-builder/pkg/node-modules.ConfigureCommand.func1
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/tree.go:41
github.com/alecthomas/kingpin.(*actionMixin).applyActions
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:222
main.main
        /Users/runner/work/app-builder/app-builder/main.go:90
runtime.main
        /Users/runner/hostedtoolcache/go/1.21.12/arm64/src/runtime/proc.go:267
runtime.goexit
        /Users/runner/hostedtoolcache/go/1.21.12/arm64/src/runtime/asm_arm64.s:1197  
  ⨯ /FULL_PATH_REDACTED/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1  failedTask=build stackTrace=Error: /FULL_PATH_REDACTED/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1
    at ChildProcess.<anonymous> (/FULL_PATH_REDACTED/node_modules/builder-util/src/util.ts:255:14)
    at Object.onceWrapper (node:events:635:26)
    at ChildProcess.emit (node:events:520:28)
    at maybeClose (node:internal/child_process:1105:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:305:5)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

It seems like an issue related to app-builder

For whatever reason, it tries to find a folder in /node_modules/create-hash/md5.js/package.json but it fails:
image

Version 24.13.3 works fine on Mac.

@mmaietta
Copy link
Collaborator

mmaietta commented Sep 6, 2024

@beyondkmp can you please take a look at this when you have a chance? Looks related to the app-builder-bin changes

@beyondkmp
Copy link
Collaborator

The createHash library depends on the md5.js library, and there might be issues with such paths on macOS. I'll try to reproduce and check.

https://github.com/browserify/createHash/blob/master/package.json#L35

@Crease29
Copy link

Crease29 commented Sep 8, 2024

I'm having the same issue on Ubuntu WSL2.

$ electron-builder install-app-deps
  • electron-builder  version=25.0.5
  ⨯ open /home/user/code/project/node_modules/create-hash/md5.js/package.json: not a directory
github.com/develar/app-builder/pkg/node-modules.(*Collector).resolveDependency
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:236
github.com/develar/app-builder/pkg/node-modules.(*Collector).processDependencies
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:122
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:64
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:80
github.com/develar/app-builder/pkg/node-modules.(*Collector).readDependencyTree
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/nodeModuleCollector.go:80
github.com/develar/app-builder/pkg/node-modules.ConfigureCommand.func1
        /Users/runner/work/app-builder/app-builder/pkg/node-modules/tree.go:41
github.com/alecthomas/kingpin.(*actionMixin).applyActions
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:222
main.main
        /Users/runner/work/app-builder/app-builder/main.go:90
runtime.main
        /Users/runner/hostedtoolcache/go/1.21.12/arm64/src/runtime/proc.go:267
runtime.goexit
        /Users/runner/hostedtoolcache/go/1.21.12/arm64/src/runtime/asm_amd64.s:1650
  ⨯ /home/user/code/project/node_modules/app-builder-bin/linux/x64/app-builder process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1  failedTask=installAppDeps stackTrace=Error: /home/user/code/project/node_modules/app-builder-bin/linux/x64/app-builder process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1
    at ChildProcess.<anonymous> (/home/user/code/project/node_modules/builder-util/src/util.ts:255:14)
    at Object.onceWrapper (node:events:629:26)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1105:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:305:5)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
node -v
v20.10.0
yarn -v
1.22.22

@beyondkmp
Copy link
Collaborator

nativeRebuilder = sequential “legacy” | “sequential” | “parallel” | “undefined” - Use legacy app-builder binary for installing native dependencies, or @electron/rebuild in sequential or parallel compilation modes.

@Crease29 Which configuration are you using for the nativeRebuilder?

@Crease29
Copy link

Crease29 commented Sep 9, 2024

nativeRebuilder = sequential “legacy” | “sequential” | “parallel” | “undefined” - Use legacy app-builder binary for installing native dependencies, or @electron/rebuild in sequential or parallel compilation modes.

@Crease29 Which configuration are you using for the nativeRebuilder?

I'm not overwriting this config flag, so I assume the default is sequential. Shall I try with an other value?

@Crease29
Copy link

Crease29 commented Sep 9, 2024

electron-builder install-app-deps is part of my postinstall script and that's where it's failing. I think at that point it hasn't even read any config flags yet.

The same command runs perfectly fine with 25.0.0-alpha.7

$ electron-builder install-app-deps
  • electron-builder  version=25.0.0-alpha.7
  • executing @electron/rebuild  electronVersion=29.4.6 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • completed installing native dependencies
Done in 12.26s.

@mmaietta
Copy link
Collaborator

mmaietta commented Sep 9, 2024

Hmmm, there's not much I can find in the diff (v25.0.0-alpha.7...v25.0.5#diff-7f97d68f3da2a576ab7689e166a9b012ab54ec606fc9833057830240df76c532 other than packages/app-builder-lib/src/util/yarn.ts)
Can you try this patch-package?
app-builder-lib+25.0.5.patch

diff --git a/node_modules/app-builder-lib/out/util/yarn.js b/node_modules/app-builder-lib/out/util/yarn.js
index 0ec91e6..7456ebc 100644
--- a/node_modules/app-builder-lib/out/util/yarn.js
+++ b/node_modules/app-builder-lib/out/util/yarn.js
@@ -169,9 +169,11 @@ async function rebuild(config, appDir, options) {
         debug: builder_util_1.log.isDebugEnabled,
         projectRootPath: await (0, search_module_1.getProjectRootPath)(appDir),
         mode: config.nativeRebuilder || "sequential",
-        buildFromSource: buildFromSource,
         disablePreGypCopy: true,
     };
+    if (buildFromSource) {
+        rebuildOptions.prebuildTagPrefix = "totally-not-a-real-prefix-to-force-rebuild";
+    }
     return (0, rebuild_1.rebuild)(rebuildOptions);
 }
 //# sourceMappingURL=yarn.js.map
\ No newline at end of file

@Crease29
Copy link

Crease29 commented Sep 9, 2024

I've installed electron-builder 25.0.5, applied the changes to that file node_modules/app-builder-lib/out/util/yarn.js and ran yarn electron-builder install-app-deps, but still the same error message.

$ yarn electron-builder install-app-deps
yarn run v1.22.22
$ /home/user/code/project/node_modules/.bin/electron-builder install-app-deps
  • electron-builder  version=25.0.5
  ⨯ open  /home/user/code/project/node_modules/create-hash/md5.js/package.json: not a directory
github.com/develar/app-builder/pkg/node-modules.(*Collector).resolveDependency
[...]

@Crease29
Copy link

Crease29 commented Sep 9, 2024

Just for testing I've added a console log at that spot but it's not even executed.
Here's the stack trace again:

Exit code:
1  failedTask=installAppDeps stackTrace=Error: /home/user/code/project/node_modules/app-builder-bin/linux/x64/app-builder process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1
    at ChildProcess.<anonymous> (/home/user/code/project/node_modules/builder-util/src/util.ts:255:14)
    at Object.onceWrapper (node:events:629:26)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1105:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:305:5)

@Crease29
Copy link

Crease29 commented Sep 9, 2024

Found the issue! When I remove crypto-browserify (v3.12.0) it works. When I install it again, it fails.

@TheCrypt0
Copy link

I can confirm that manually removing the crypto-browserify folder from node_modules, although not ideal, seems to take the process a step ahead but now it breaks here for me:

yarn run v1.22.22
$ vite build -m prod && electron-builder --mac --win -p always
vite v5.3.2 building for prod...
✓ 316 modules transformed.
dist/index.html                            0.60 kB │ gzip:   0.38 kB
dist/assets/full-logo-CYuPax31.svg         6.57 kB │ gzip:   2.69 kB
dist/assets/HKNova-Regular-DKYRK5-9.ttf   91.38 kB
dist/assets/HKNova-Medium-DlIpTjze.ttf    91.98 kB
dist/assets/index-Fed0Psmw.css            29.86 kB │ gzip:   5.18 kB
dist/assets/rom-Caghk6Eh.js                0.05 kB │ gzip:   0.07 kB
dist/assets/esp32h2-Cf8JbGZQ.js            6.82 kB │ gzip:   4.43 kB
dist/assets/esp32c2-CtjOOsCE.js            6.83 kB │ gzip:   4.36 kB
dist/assets/esp32c6-BRG5ZpJ8.js            6.86 kB │ gzip:   4.44 kB
dist/assets/esp32c3-DDsZSfEd.js            6.94 kB │ gzip:   4.49 kB
dist/assets/esp32-BPYaDt9v.js              7.65 kB │ gzip:   4.62 kB
dist/assets/esp32s2-BOsRKhcm.js            7.83 kB │ gzip:   4.92 kB
dist/assets/esp32s3-DkgZlzv1.js            8.76 kB │ gzip:   5.47 kB
dist/assets/esp32p4-DfBdIAkh.js            9.89 kB │ gzip:   5.34 kB
dist/assets/esp8266-8VKmCx7J.js           14.14 kB │ gzip:   8.65 kB
dist/assets/index-DZO29Qgt.js            532.60 kB │ gzip: 170.81 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 1.04s
vite v5.3.2 building for prod...
✓ 2 modules transformed.
dist-electron/main/index.js  4.63 kB │ gzip: 1.85 kB
✓ built in 10ms
vite v5.3.2 building for prod...
✓ 1 modules transformed.
dist-electron/preload/index.mjs  1.91 kB │ gzip: 0.88 kB
✓ built in 6ms
  • electron-builder  version=25.0.5 os=23.6.0
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=out/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=29.3.3 arch=arm64 buildFromSource=false appDir=./
  • installing native dependencies  arch=arm64
  • preparing       moduleName=@serialport/bindings-cpp arch=arm64
  ⨯ (node:45544) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Traceback (most recent call last):
  File "/Users/user/project/node_modules/node-gyp/gyp/gyp_main.py", line 42, in <module>
    import gyp  # noqa: E402
    ^^^^^^^^^^
  File "/Users/user/project/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 9, in <module>
    import gyp.input
  File "/Users/user/project/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 19, in <module>
    from distutils.version import StrictVersion
ModuleNotFoundError: No module named 'distutils'
Error: `gyp` failed with exit code: 1
    at ChildProcess.onCpExit (/Users/user/project/node_modules/node-gyp/lib/configure.js:325:16)
    at ChildProcess.emit (node:events:520:28)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)


  ⨯ node-gyp failed to rebuild '/Users/user/project/node_modules/@serialport/bindings-cpp'  failedTask=build stackTrace=Error: node-gyp failed to rebuild '/Users/user/project/node_modules/@serialport/bindings-cpp'
    at ChildProcess.<anonymous> (/Users/user/project/node_modules/@electron/rebuild/lib/module-type/node-gyp/node-gyp.js:118:24)
    at ChildProcess.emit (node:events:520:28)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

It seems like it is trying to rebuild the serialport package, but shouldn't it use the already built binaries? (https://serialport.io/docs/guide-platform-support#supported-platforms-and-architectures)

With electron-builder v24.13.3 it was working fine.

@beyondkmp
Copy link
Collaborator

Found the issue! When I remove crypto-browserify (v3.12.0) it works. When I install it again, it fails.

I will try it .

@mmaietta
Copy link
Collaborator

Looks like it needs to run preparing moduleName=@serialport/bindings-cpp arch=arm64 as there is no provided binary for arm64 (only a universal per https://serialport.io/docs/guide-platform-support#supported-platforms-and-architectures We build a universal x64/M1 binary)

Does this issue happen when building an x64 version of your app?

@TheCrypt0
Copy link

@mmaietta thanks for the suggestion, I just tried and here's the result.

Running

electron-builder --mac --arm64 -p always

or

electron-builder --mac --x64 -p always

or

electron-builder --mac --x64 --arm64 -p always

Outputs the same error.

Let me know if I can help with the troubleshooting in any other way.

@TheCrypt0
Copy link

TheCrypt0 commented Sep 16, 2024

Currently testing version 25.1.2. I'm still getting this error.

yarn run v1.22.22
$ vite build -m prod && electron-builder --mac --win -p always
vite v5.3.2 building for prod...
✓ 316 modules transformed.
dist/index.html                            0.60 kB │ gzip:   0.38 kB
dist/assets/full-logo-CYuPax31.svg         6.57 kB │ gzip:   2.69 kB
dist/assets/HKNova-Regular-DKYRK5-9.ttf   91.38 kB
dist/assets/HKNova-Medium-DlIpTjze.ttf    91.98 kB
dist/assets/index-Fed0Psmw.css            29.86 kB │ gzip:   5.18 kB
dist/assets/rom-Caghk6Eh.js                0.05 kB │ gzip:   0.07 kB
dist/assets/esp32h2-Cf8JbGZQ.js            6.82 kB │ gzip:   4.43 kB
dist/assets/esp32c2-CtjOOsCE.js            6.83 kB │ gzip:   4.36 kB
dist/assets/esp32c6-BRG5ZpJ8.js            6.86 kB │ gzip:   4.44 kB
dist/assets/esp32c3-DDsZSfEd.js            6.94 kB │ gzip:   4.49 kB
dist/assets/esp32-BPYaDt9v.js              7.65 kB │ gzip:   4.62 kB
dist/assets/esp32s2-BOsRKhcm.js            7.83 kB │ gzip:   4.92 kB
dist/assets/esp32s3-DkgZlzv1.js            8.76 kB │ gzip:   5.47 kB
dist/assets/esp32p4-DfBdIAkh.js            9.89 kB │ gzip:   5.34 kB
dist/assets/esp8266-8VKmCx7J.js           14.14 kB │ gzip:   8.65 kB
dist/assets/index-DZO29Qgt.js            532.60 kB │ gzip: 170.81 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 1.04s
vite v5.3.2 building for prod...
✓ 2 modules transformed.
dist-electron/main/index.js  4.63 kB │ gzip: 1.85 kB
✓ built in 10ms
vite v5.3.2 building for prod...
✓ 1 modules transformed.
dist-electron/preload/index.mjs  1.91 kB │ gzip: 0.88 kB
✓ built in 6ms
  • electron-builder  version=25.0.5 os=23.6.0
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=out/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=29.3.3 arch=arm64 buildFromSource=false appDir=./
  • installing native dependencies  arch=arm64
  • preparing       moduleName=@serialport/bindings-cpp arch=arm64
  ⨯ (node:45544) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Traceback (most recent call last):
  File "/Users/user/project/node_modules/node-gyp/gyp/gyp_main.py", line 42, in <module>
    import gyp  # noqa: E402
    ^^^^^^^^^^
  File "/Users/user/project/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 9, in <module>
    import gyp.input
  File "/Users/user/project/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 19, in <module>
    from distutils.version import StrictVersion
ModuleNotFoundError: No module named 'distutils'
Error: `gyp` failed with exit code: 1
    at ChildProcess.onCpExit (/Users/user/project/node_modules/node-gyp/lib/configure.js:325:16)
    at ChildProcess.emit (node:events:520:28)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)


  ⨯ node-gyp failed to rebuild '/Users/user/project/node_modules/@serialport/bindings-cpp'  failedTask=build stackTrace=Error: node-gyp failed to rebuild '/Users/user/project/node_modules/@serialport/bindings-cpp'
    at ChildProcess.<anonymous> (/Users/user/project/node_modules/@electron/rebuild/lib/module-type/node-gyp/node-gyp.js:118:24)
    at ChildProcess.emit (node:events:520:28)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

It seems like it is trying to rebuild the serialport package, but shouldn't it use the already built binaries? (https://serialport.io/docs/guide-platform-support#supported-platforms-and-architectures)

With electron-builder v24.13.3 it was working fine.

@TheCrypt0
Copy link

@mmaietta

I don't want to bother you but I don't understand why the issue was closed. I'm probably missing something.

Currently testing Windows build on macOS Sequoia (MacBook Air M2) version 25.1.5 and now it's stuck here:

yarn run v1.22.22
$ vite build -m prod && electron-builder --win -p always
vite v5.3.2 building for prod...
✓ 324 modules transformed.
dist/index.html                            0.60 kB │ gzip:   0.38 kB
dist/assets/full-logo-CYuPax31.svg         6.57 kB │ gzip:   2.69 kB
dist/assets/HKNova-Regular-DKYRK5-9.ttf   91.38 kB
dist/assets/HKNova-Medium-DlIpTjze.ttf    91.98 kB
dist/assets/index-D4lGcTSe.css            35.21 kB │ gzip:   5.67 kB
dist/assets/rom-Caghk6Eh.js                0.05 kB │ gzip:   0.07 kB
dist/assets/esp32h2-Cf8JbGZQ.js            6.82 kB │ gzip:   4.43 kB
dist/assets/esp32c2-CtjOOsCE.js            6.83 kB │ gzip:   4.36 kB
dist/assets/esp32c6-BRG5ZpJ8.js            6.86 kB │ gzip:   4.44 kB
dist/assets/esp32c3-DDsZSfEd.js            6.94 kB │ gzip:   4.49 kB
dist/assets/esp32-BPYaDt9v.js              7.65 kB │ gzip:   4.62 kB
dist/assets/esp32s2-BOsRKhcm.js            7.83 kB │ gzip:   4.92 kB
dist/assets/esp32s3-DkgZlzv1.js            8.76 kB │ gzip:   5.47 kB
dist/assets/esp32p4-DfBdIAkh.js            9.89 kB │ gzip:   5.34 kB
dist/assets/esp8266-8VKmCx7J.js           14.14 kB │ gzip:   8.65 kB
dist/assets/index-B56Pzm92.js            546.22 kB │ gzip: 173.98 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 1.32s
vite v5.3.2 building for prod...
✓ 2 modules transformed.
dist-electron/main/index.js  4.63 kB │ gzip: 1.85 kB
✓ built in 11ms
vite v5.3.2 building for prod...
✓ 1 modules transformed.
dist-electron/preload/index.mjs  1.91 kB │ gzip: 0.88 kB
✓ built in 6ms
  • electron-builder  version=25.1.5 os=24.0.0
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=out/builder-effective-config.yaml

@mmaietta
Copy link
Collaborator

Sorry @TheCrypt0 , looks like that was automation on a separate repo develar/app-builder#132 that was linked to this GH issue. I'll reopen since you're still receiving an error

Can you re-execute with DEBUG=electron-builder env var set and post back logs. Curious as to where it is hanging in the logic flow

@mmaietta mmaietta reopened this Sep 24, 2024
@TheCrypt0
Copy link

@mmaietta Thanks for the quick reply!

Deleting node_modules and running yarn again seems to have fixed the issue, but unfortunately the built package doesn't work as it should.

It is a little strange because I ran yarn before posting the previous log to install the new electron-builder version.

Here's the error I'm getting on the windows machine, let me know if this rings a bell:
Screenshot 2024-09-24 182158

@mmaietta
Copy link
Collaborator

This is starting to look like another GH issue reported re: native binaries. Any chance you can provide me with a repo I can clone to test locally on my parallels VM?

@TheCrypt0
Copy link

@mmaietta Unfortunately I cannot provide the project I'm working on because it is a work project.

I should be able to create one next week, but for now I think what could be useful is that I'm using the serialport package.

@TheCrypt0
Copy link

@mmaietta

NVM, I found some time to create a minimal reproducible example. Here's what to expect with a working system:
demo-builder.zip

image

@mmaietta
Copy link
Collaborator

mmaietta commented Sep 26, 2024

@beyondkmp looks like we have an infinite loop/recursion in detecting dependencies via app-builder-bin, I'm seeing this in the logs nonstop. Can you please take a look at the minimal repro project provided?

  • unresolved deps  unresolved=esutils nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=escape-string-regexphas-ansi nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=ansi-regex nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-messagesbabel-runtimebabel-typesdetect-indentlodashsource-maptrim-right nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-runtimeesutilslodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-code-framebabel-messagesbabel-runtimebabel-typesbabyloninvariantlodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=esutils nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=escape-string-regexphas-ansi nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=ansi-regex nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-runtimeesutilslodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-runtimeesutilslodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-code-framebabel-generatorbabel-helpersbabel-messagesbabel-registerbabel-runtimebabel-templatebabel-traversebabel-typesbabylonlodashminimatchpath-is-absoluteprivateslashsource-map
                     nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules
                     round=0
  • unresolved deps  unresolved=esutils nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=escape-string-regexphas-ansi nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=ansi-regex nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-messagesbabel-runtimebabel-typesdetect-indentlodashsource-maptrim-right nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-runtimeesutilslodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-code-framebabel-messagesbabel-runtimebabel-typesbabyloninvariantlodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=esutils nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=escape-string-regexphas-ansi nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=ansi-regex nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-runtimeesutilslodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-runtimeesutilslodash nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules round=0
  • unresolved deps  unresolved=babel-code-framebabel-generatorbabel-helpersbabel-messagesbabel-registerbabel-runtimebabel-templatebabel-traversebabel-typesbabylonlodashminimatchpath-is-absoluteprivateslashsource-map
                     nodeModuleDir=/Users/mmaietta/Downloads/demo-builder/node_modules
                     round=0

@beyondkmp
Copy link
Collaborator

beyondkmp commented Sep 27, 2024

@mmaietta This has been fixed in develar/app-builder#138.
image

@mmaietta
Copy link
Collaborator

You're amazing @beyondkmp. I'll kick off the release of electron-builder now then to get this issue resolved.

@TheCrypt0, deploying release v25.1.6 now. Please update when you have a chance

@TheCrypt0
Copy link

@mmaietta @beyondkmp

Thank you guys! That was incredibly fast.

I'm now getting this output

yarn run v1.22.22
$ vite build -m prod && electron-builder --win -p always
vite v5.4.8 building for prod...
✓ 33 modules transformed.
dist/index.html                   0.58 kB │ gzip:  0.37 kB
dist/assets/index-BaO87r0p.css    0.22 kB │ gzip:  0.16 kB
dist/assets/index-B3Z2Pk9w.js   143.23 kB │ gzip: 46.05 kB
✓ built in 394ms
vite v5.4.8 building for prod...
✓ 2 modules transformed.
dist-electron/main/index.js  5.21 kB │ gzip: 2.07 kB
✓ built in 16ms
vite v5.4.8 building for prod...
✓ 1 modules transformed.
dist-electron/preload/index.mjs  1.91 kB │ gzip: 0.88 kB
✓ built in 8ms
  • electron-builder  version=25.1.6 os=24.0.0
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=out/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=29.4.6 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • preparing       moduleName=@serialport/bindings-cpp arch=x64
  ⨯ (node:93882) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Traceback (most recent call last):
  File "/Users/user/projects/demo-builder/node_modules/node-gyp/gyp/gyp_main.py", line 42, in <module>
    import gyp  # noqa: E402
    ^^^^^^^^^^
  File "/Users/user/projects/demo-builder/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 9, in <module>
    import gyp.input
  File "/Users/user/projects/demo-builder/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 19, in <module>
    from distutils.version import StrictVersion
ModuleNotFoundError: No module named 'distutils'
Error: `gyp` failed with exit code: 1
    at ChildProcess.onCpExit (/Users/user/projects/demo-builder/node_modules/node-gyp/lib/configure.js:325:16)
    at ChildProcess.emit (node:events:519:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)


  ⨯ node-gyp failed to rebuild '/Users/user/projects/demo-builder/node_modules/@serialport/bindings-cpp'  failedTask=build stackTrace=Error: node-gyp failed to rebuild '/Users/user/projects/demo-builder/node_modules/@serialport/bindings-cpp'
    at ChildProcess.<anonymous> (/Users/user/projects/demo-builder/node_modules/@electron/rebuild/lib/module-type/node-gyp/node-gyp.js:118:24)
    at ChildProcess.emit (node:events:519:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Solution
After running brew install python-setuptools, now it goes beyond that but it breaks later:

yarn run v1.22.22
$ vite build -m prod && electron-builder --win -p always
vite v5.4.8 building for prod...
✓ 33 modules transformed.
dist/index.html                   0.58 kB │ gzip:  0.37 kB
dist/assets/index-BaO87r0p.css    0.22 kB │ gzip:  0.16 kB
dist/assets/index-B3Z2Pk9w.js   143.23 kB │ gzip: 46.05 kB
✓ built in 412ms
vite v5.4.8 building for prod...
✓ 2 modules transformed.
dist-electron/main/index.js  5.21 kB │ gzip: 2.07 kB
✓ built in 17ms
vite v5.4.8 building for prod...
✓ 1 modules transformed.
dist-electron/preload/index.mjs  1.91 kB │ gzip: 0.88 kB
✓ built in 8ms
  • electron-builder  version=25.1.6 os=24.0.0
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=out/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=29.4.6 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • preparing       moduleName=@serialport/bindings-cpp arch=x64
  • finished        moduleName=@serialport/bindings-cpp arch=x64
  • preparing       moduleName=fsevents arch=x64
  • finished        moduleName=fsevents arch=x64
  • preparing       moduleName=fsevents arch=x64
  • finished        moduleName=fsevents arch=x64
  • completed installing native dependencies
  • packaging       platform=win32 arch=x64 electron=29.4.6 appOutDir=out/win-unpacked
  • downloading     url=https://github.com/electron/electron/releases/download/v29.4.6/electron-v29.4.6-win32-x64.zip size=108 MB parts=8
  • downloaded      url=https://github.com/electron/electron/releases/download/v29.4.6/electron-v29.4.6-win32-x64.zip duration=18.03s
  • updating asar integrity executable resource  executablePath=out/win-unpacked/demo-app.exe
  ⨯ image: unknown format
github.com/develar/go-fs-util.CloseAndCheckError
        /Users/runner/go/pkg/mod/github.com/develar/go-fs-util@v0.0.0-20190620175131-69a2d4542206/fs.go:117
github.com/develar/app-builder/pkg/icons.DecodeImageAndClose
        /Users/runner/work/app-builder/app-builder/pkg/icons/image-util.go:90
github.com/develar/app-builder/pkg/icons.LoadImage
        /Users/runner/work/app-builder/app-builder/pkg/icons/image-util.go:54
github.com/develar/app-builder/pkg/icons.loadImage
        /Users/runner/work/app-builder/app-builder/pkg/icons/icon-converter.go:342
github.com/develar/app-builder/pkg/icons.configureInputInfoFromSingleFile
        /Users/runner/work/app-builder/app-builder/pkg/icons/icon-converter.go:324
github.com/develar/app-builder/pkg/icons.doConvertIcon
        /Users/runner/work/app-builder/app-builder/pkg/icons/icon-converter.go:249
github.com/develar/app-builder/pkg/icons.ConvertIcon
        /Users/runner/work/app-builder/app-builder/pkg/icons/icon-converter.go:56
github.com/develar/app-builder/pkg/icons.ConfigureCommand.func1
        /Users/runner/work/app-builder/app-builder/pkg/icons/icon-converter.go:33
github.com/alecthomas/kingpin.(*actionMixin).applyActions
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
        /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:222
main.main
        /Users/runner/work/app-builder/app-builder/main.go:90
runtime.main
        /Users/runner/hostedtoolcache/go/1.21.13/arm64/src/runtime/proc.go:267
runtime.goexit
        /Users/runner/hostedtoolcache/go/1.21.13/arm64/src/runtime/asm_arm64.s:1197  
  ⨯ /Users/user/projects/demo-builder/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1  failedTask=build stackTrace=Error: /Users/user/projects/demo-builder/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1
    at ChildProcess.<anonymous> (/Users/user/projects/demo-builder/node_modules/builder-util/src/util.ts:255:14)
    at Object.onceWrapper (node:events:634:26)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1104:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
From previous event:
    at processImmediate (node:internal/timers:491:21)
From previous event:
    at WinPackager.signApp (/Users/user/projects/demo-builder/node_modules/app-builder-lib/src/winPackager.ts:270:27)
    at WinPackager.doSignAfterPack (/Users/user/projects/demo-builder/node_modules/app-builder-lib/src/platformPackager.ts:346:32)
    at WinPackager.doPack (/Users/user/projects/demo-builder/node_modules/app-builder-lib/src/platformPackager.ts:331:7)
    at WinPackager.pack (/Users/user/projects/demo-builder/node_modules/app-builder-lib/src/platformPackager.ts:138:5)
    at Packager.doBuild (/Users/user/projects/demo-builder/node_modules/app-builder-lib/src/packager.ts:459:9)
    at executeFinally (/Users/user/projects/demo-builder/node_modules/builder-util/src/promise.ts:12:14)
    at Packager.build (/Users/user/projects/demo-builder/node_modules/app-builder-lib/src/packager.ts:393:31)
    at executeFinally (/Users/user/projects/demo-builder/node_modules/builder-util/src/promise.ts:12:14)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Solution
This was caused by a missing icon.png in the build folder. After adding it, the error went away.

Leaving those troubleshooting steps for anyone that might found himself in the same situation in the future.


I now got an installer file but is still not working (built on macOS Sequoia (MacBook Air M2), electron-builder version 25.1.6) :

Screenshot 2024-09-27 102328

Is there anything else I should try?

@mmaietta
Copy link
Collaborator

The combination of is not a valid Win32 application and serialport providing prebuilt binaries will be resolved via: #8537

mmaietta added a commit that referenced this issue Oct 1, 2024
Updates to latest electron-rebuild that allows passing in `platform` for
prebuilt node modules (previous versions of electron-rebuild had
hardcoded `process.platform`)

Fixes: #8528
#8426
xyloflake pushed a commit to xyloflake/electron-builder that referenced this issue Oct 2, 2024
Updates to latest electron-rebuild that allows passing in `platform` for
prebuilt node modules (previous versions of electron-rebuild had
hardcoded `process.platform`)

Fixes: electron-userland#8528
electron-userland#8426
@mmaietta
Copy link
Collaborator

mmaietta commented Oct 2, 2024

Released in 25.1.7, please feel free to give it a shot!

@TheCrypt0
Copy link

Hey @mmaietta , unfortunately it doesn't work.

yarn run v1.22.22
$ vite build -m prod && electron-builder --win -p always
vite v5.3.2 building for prod...
transforming (68) src/screens/Home/Home.module.css[electron-renderer] pre-bundling serialport
✓ 372 modules transformed.
dist/index.html                            0.60 kB │ gzip:   0.38 kB
dist/assets/full-logo-CYuPax31.svg         6.57 kB │ gzip:   2.69 kB
dist/assets/HKNova-Regular-DKYRK5-9.ttf   91.38 kB
dist/assets/HKNova-Medium-DlIpTjze.ttf    91.98 kB
dist/assets/index-M_Gvody7.css            44.10 kB │ gzip:   6.64 kB
dist/assets/rom-Caghk6Eh.js                0.05 kB │ gzip:   0.07 kB
dist/assets/esp32h2-Cf8JbGZQ.js            6.82 kB │ gzip:   4.43 kB
dist/assets/esp32c2-CtjOOsCE.js            6.83 kB │ gzip:   4.36 kB
dist/assets/esp32c6-BRG5ZpJ8.js            6.86 kB │ gzip:   4.44 kB
dist/assets/esp32c3-DDsZSfEd.js            6.94 kB │ gzip:   4.49 kB
dist/assets/esp32-BPYaDt9v.js              7.65 kB │ gzip:   4.62 kB
dist/assets/esp32s2-BOsRKhcm.js            7.83 kB │ gzip:   4.92 kB
dist/assets/esp32s3-DkgZlzv1.js            8.76 kB │ gzip:   5.47 kB
dist/assets/esp32p4-DfBdIAkh.js            9.89 kB │ gzip:   5.34 kB
dist/assets/esp8266-8VKmCx7J.js           14.14 kB │ gzip:   8.65 kB
dist/assets/index-BPLkTsNz.js            677.52 kB │ gzip: 204.18 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 1.27s
vite v5.3.2 building for prod...
✓ 2 modules transformed.
dist-electron/main/index.js  5.28 kB │ gzip: 2.10 kB
✓ built in 10ms
vite v5.3.2 building for prod...
✓ 1 modules transformed.
dist-electron/preload/index.mjs  1.91 kB │ gzip: 0.88 kB
✓ built in 5ms
  • electron-builder  version=25.1.7 os=24.0.0
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=out/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=29.3.3 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • preparing       moduleName=@serialport/bindings-cpp arch=x64
  • finished        moduleName=@serialport/bindings-cpp arch=x64
  • preparing       moduleName=fsevents arch=x64
  ⨯ node-gyp does not support cross-compiling native modules from source.  failedTask=build stackTrace=Error: node-gyp does not support cross-compiling native modules from source.
    at NodeGyp.rebuildModule (/Users/user/project/node_modules/@electron/rebuild/lib/module-type/node-gyp/node-gyp.js:79:19)
    at ModuleRebuilder.rebuildNodeGypModule (/Users/user/project/node_modules/@electron/rebuild/lib/module-rebuilder.js:112:28)
    at ModuleRebuilder.rebuild (/Users/user/project/node_modules/@electron/rebuild/lib/module-rebuilder.js:145:27)
    at async Rebuilder.rebuildModuleAt (/Users/user/project/node_modules/@electron/rebuild/lib/rebuild.js:165:13)
    at async Rebuilder.rebuild (/Users/user/project/node_modules/@electron/rebuild/lib/rebuild.js:115:17)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

@mmaietta
Copy link
Collaborator

mmaietta commented Oct 4, 2024

• preparing moduleName=fsevents arch=x64
⨯ node-gyp does not support cross-compiling native modules from source.

Looks like fsevents does not provide a prebuilt binary? In which case, you're trying to cross-compile a native addon for windows on what looks like a mac machine. This is not possible per both the error message (per native node-gyp capabilities) and what's stated in our documentation: https://www.electron.build/multi-platform-build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants