Razviar / marvelsnaptracker

Marvel Snap Tracker repo
https://marvelsnap.pro/
161 stars 35 forks source link

Error when packaging Marvel Snap Tracker with electron-forge on Arch Linux #35

Open G4Zz0L1 opened 1 year ago

G4Zz0L1 commented 1 year ago

Description

I am encountering an error when attempting to package Marvel Snap Tracker with electron-forge on Arch Linux. I have successfully packaged and used version 1.1.8 with electron-forge, but have encountered issues with the latest changes. Specifically, version 1.2.7 (which was obtained via a pull) fails with the following error message:

❯ npm run package
> marvelsnaptracker@1.2.7 package
> electron-forge package
✔ Checking your system
✔ Preparing to package application
❯ Running packaging hooks
  ✔ Running generateAssets hook
  ❯ Running prePackage hook
    ✔ [plugin-webpack] Preparing native dependencies
    ⠇ [plugin-webpack] Building webpack bundles
◼ Packaging application
◼ Running postPackage hook
/usr/bin/node[1690308]: ../src/module_wrap.cc:599:v8::MaybeLocal<v8::Promise> node::loader::ImportModuleDynamically(v8::Local<v8::Context>, v8::Local<v8::Data>, v8::Local<v8::Value>, v8::Local<v8::String>, v8::Local<v8::FixedArray>): Assertion `(it) != (env->id_to_function_map.end())' failed.
 1: 0x7fb962e96e8d node::Abort() [/usr/bin/../lib/libnode.so.111]
 2: 0x7fb962e971d6 node::Assert(node::AssertionInfo const&) [/usr/bin/../lib/libnode.so.111]
 3: 0x7fb962e49a4d  [/usr/bin/../lib/libnode.so.111]
 4: 0x7fb9633d847a v8::internal::Isolate::RunHostImportModuleDynamicallyCallback(v8::internal::MaybeHandle<v8::internal::Script>, v8::internal::Handle<v8::internal::Object>, v8::internal::MaybeHandle<v8::internal::Object>) [/usr/bin/../lib/libnode.so.111]
 5: 0x7fb963812b18 v8::internal::Runtime_DynamicImportCall(int, unsigned long*, v8::internal::Isolate*) [/usr/bin/../lib/libnode.so.111]
 6: 0x7fb96315a5f4  [/usr/bin/../lib/libnode.so.111]

Reproduction Steps

  1. Clone the Marvel Snap Tracker repository from GitHub.
  2. Switch to the master branch.
  3. Pull the latest changes to obtain version 1.2.7.
  4. Run npm run package to attempt to package the application with electron-forge.
  5. Observe the error message listed above.

System Information

Operating System: Arch Linux Node.js Version: v19.8.0

Additional Information

I am not very familiar with Node.js or electron-forge, so any guidance on how to troubleshoot this issue would be greatly appreciated.

Thank you!

G4Zz0L1 commented 1 year ago

I've found out that the node v19.8.0 was bugged, and they fixed the previous error in the 19.8.1 (which I have now updated). Now the error changes to this:

❯ npm run package
> marvelsnaptracker@1.2.7 package
> electron-forge package
✔ Checking your system
✔ Preparing to package application
❯ Running packaging hooks
  ✔ Running generateAssets hook
  ❯ Running prePackage hook
    ✔ [plugin-webpack] Preparing native dependencies
    ✖ [plugin-webpack] Building webpack bundles
      › Compilation errors in the main process: assets by status 834 KiB [cached] 4 assets
        orphan modules 362 KiB [orphan] 127 modules
        runtime modules 1.06 KiB 6 modules
        built modules 1.44 MiB [built]
        modules by path ./node_modules/ 1.08 MiB 57 modules
        modules by path ./src/ 368 KiB
        modules by path ./src/our-active-win/ 2.28 KiB
        ./src/our-active-win/index.js 471 bytes [built] [code generated]
        ./src/our-active-win/lib/macos.js 980 bytes [built] [code generated]
        ./src/our-active-win/lib/windows.js 653 bytes [built] [code generated]
        ./src/our-active-win/lib/windows-emit.js 233 bytes [built] [code generated]
        ./src/main.ts + 124 modules 365 KiB [not cacheable] [built] [code generated]
        ./src/electron-squirrel-startup/index.js 915 bytes [built] [code generated]
        ./src/statics/icon.ico 62 bytes [built] [code generated]
        + 12 modules
        ERROR in unable to locate 'marvelsnaptracker/src/our-active-win/*.dll*' glob
        ERROR in unable to locate 'marvelsnaptracker/src/our-active-win/*.pdb*' glob
        webpack 5.77.0 compiled with 2 errors in 6602 ms
◼ Packaging application
◼ Running postPackage hook

An unhandled rejection has occurred inside Forge:
Error: Compilation errors in the main process: assets by status 834 KiB [cached] 4 assets
orphan modules 362 KiB [orphan] 127 modules
runtime modules 1.06 KiB 6 modules
built modules 1.44 MiB [built]
  modules by path ./node_modules/ 1.08 MiB 57 modules
  modules by path ./src/ 368 KiB
    modules by path ./src/our-active-win/ 2.28 KiB
      ./src/our-active-win/index.js 471 bytes [built] [code generated]
      ./src/our-active-win/lib/macos.js 980 bytes [built] [code generated]
      ./src/our-active-win/lib/windows.js 653 bytes [built] [code generated]
      ./src/our-active-win/lib/windows-emit.js 233 bytes [built] [code generated]
    ./src/main.ts + 124 modules 365 KiB [not cacheable] [built] [code generated]
    ./src/electron-squirrel-startup/index.js 915 bytes [built] [code generated]
    ./src/statics/icon.ico 62 bytes [built] [code generated]
  + 12 modules

ERROR in unable to locate 'marvelsnaptracker/src/our-active-win/*.dll*' glob

ERROR in unable to locate 'marvelsnaptracker/src/our-active-win/*.pdb*' glob

webpack 5.77.0 compiled with 2 errors in 6602 ms
at cb (marvelsnaptracker/node_modules/@electron-forge/plugin-webpack/dist/WebpackPlugin.js:163:43)
    at finalCallback (marvelsnaptracker/node_modules/webpack/lib/Compiler.js:441:32)
    at marvelsnaptracker/node_modules/webpack/lib/Compiler.js:458:13
    at Hook.eval [as callAsync] (eval at create (marvelsnaptracker/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (marvelsnaptracker/node_modules/tapable/lib/Hook.js:18:14)
    at onCompiled (marvelsnaptracker/node_modules/webpack/lib/Compiler.js:456:21)
    at marvelsnaptracker/node_modules/webpack/lib/Compiler.js:1196:17
    at Hook.eval [as callAsync] (eval at create (marvelsnaptracker/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (marvelsnaptracker/node_modules/tapable/lib/Hook.js:18:14)
    at marvelsnaptracker/node_modules/webpack/lib/Compiler.js:1192:33
    at finalCallback (marvelsnaptracker/node_modules/webpack/lib/Compilation.js:2787:11)
    at marvelsnaptracker/node_modules/webpack/lib/Compilation.js:3092:11
    at Hook.eval [as callAsync] (eval at create (marvelsnaptracker/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (marvelsnaptracker/node_modules/tapable/lib/Hook.js:18:14)
    at marvelsnaptracker/node_modules/webpack/lib/Compilation.js:3085:38
    at eval (eval at create (marvelsnaptracker/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:17:1)
borghe1 commented 1 year ago

I get the same on macOS

G4Zz0L1 commented 1 year ago

Same version of node? I'd like to know how the maintainer packages this repo, just to do the same and get it to work xD

SigmaTheFox commented 1 year ago

I'm quite late to this and hope you are still looking for a solution.. But I did get it to work quite easily by deleting a few lines in the configs and using node v18.17.1

I forked and updated those files for you over at https://github.com/SigmaTheFox/marvelsnaptracker/ Just run npm run package or npm run make like usual, and, if I didn't forget anything, it should create the binary for you. Have fun with the new PC client for marvel snap btw :)

G4Zz0L1 commented 1 year ago

Thanks a lot @SigmaTheFox! Now it packages fine and launches the updated version of the tracker, also on my Arch Linux system. The overlay isn't working, but at least I've the latest version now.

SigmaTheFox commented 1 year ago

From what I understood in other issues, those missing files are what allow the overlay to work and it's something that has to be compiled separately... Just no clue where it is

Razviar commented 1 year ago

Overlay is windows only solution, so it can't work on other platforms.

SigmaTheFox commented 1 year ago

I see, thanks for the clarification :) guess I'll leave my arch packaging fix like this then, instead of wasting time on getting the overlay to work