BrainJS / BrainJS/brain.js

Electron rebuild fails on Windows

Open
#655 10 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
14.9k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

## _What_ is wrong?

After installing brain.js, trying to run my electron app gives a node_module_version mismatch and when trying to run electron-rebuild.cmd a linker error is throwed

## _Where_ does it happen?

At electron's start (window doesn't show up, only an error dialog about node_module_version appears) and when executing electron-rebuild.cmd

## _How_ do we replicate the issue?

- Install brain.js
- Import it in main.js
- Run Electron (and fail)
```
[1]
[1] App threw an error during load
[1] Error: The module '\\?\C:\MX\Chero\node_modules\gl\build\Release\webgl.node'
[1] was compiled against a different Node.js version using
[1] NODE_MODULE_VERSION 72. This version of Node.js requires
[1] NODE_MODULE_VERSION 82. Please try re-compiling or re-installing
[1] the module (for instance, using `npm rebuild` or `npm install`).
[1] at process.func [as dlopen] (electron/js2c/asar.js:140:31)
[1] at Object.Module._extensions..node (internal/modules/cjs/loader.js:1196:18)
[1] at Object.func [as .node] (electron/js2c/asar.js:140:31)
[1] at Module.load (internal/modules/cjs/loader.js:981:32)
[1] at Module._load (internal/modules/cjs/loader.js:881:14)
[1] at Function.Module._load (electron/js2c/asar.js:769:28)
[1] at Module.require (internal/modules/cjs/loader.js:1023:19)
[1] at require (internal/modules/cjs/helpers.js:77:18)
[1] at bindings (C:\MX\Chero\node_modules\bindings\bindings.js:112:48)
[1] at Object. (C:\MX\Chero\node_modules\gl\src\javascript\native-gl.js:1:40)

```
- Run electron-rebuild (and fail again)

```
| Building module: gl, Completed: 0gyp info find Python using Python version 2.7.18 found at "C:\Python27\python.exe"
| Building module: gl, Completed: 0gyp info find VS using VS2017 (15.9.28307.1274) found at:
gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools"
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\Python27\python.exe
gyp info spawn args [
gyp info spawn args 'C:\\MX\\Chero\\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:\\MX\\Chero\\node_modules\\gl\\build\\config.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\MX\\Chero\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\\MX\\Chero\\node_modules\\gl\\10.1.5\\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:\\MX\\Chero\\node_modules\\gl\\10.1.5',
gyp info spawn args '-Dnode_gyp_dir=C:\\MX\\Chero\\node_modules\\node-gyp',
gyp info spawn args '-Dnode_lib_file=C:\\\\MX\\\\Chero\\\\node_modules\\\\gl\\\\10.1.5\\\\<(target_arch)\\\\node.lib',
gyp info spawn args '-Dmodule_root_dir=C:\\MX\\Chero\\node_modules\\gl',
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:\\MX\\Chero\\node_modules\\gl\\build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
\ Building module: gl, Completed: 0gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\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 map: [Function]
gyp info spawn args ]
| Building module: gl, Completed: 0Compilazione dei progetti nella soluzione uno alla volta. Per abilitare la compilazione parallela, aggiungere l'opzione "/m".
\ Building module: gl, Completed: 0 Copying C:\MX\Chero\node_modules\gl/deps/windows/dll/x64/libEGL.dll to C:\MX\Chero\node_modules\gl\build\Release
1 file copiati.
Copying C:\MX\Chero\node_modules\gl/deps/windows/dll/x64/d3dcompiler_47.dll to C:\MX\Chero\node_modules\gl\build\Release
1 file copiati.
Copying C:\MX\Chero\node_modules\gl/deps/windows/dll/x64/libGLESv2.dll to C:\MX\Chero\node_modules\gl\build\Release
1 file copiati.
- Building module: gl, Completed: 0 bindings.cc
| Building module: gl, Completed: 0c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(9113): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(7322): note: vedere la dichiarazione di 'v8::MicrotasksCompletedCallback'
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(9121): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(7322): note: vedere la dichiarazione di 'v8::MicrotasksCompletedCallback'
| Building module: gl, Completed: 0 webgl.cc
- Building module: gl, Completed: 0c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(9113): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(7322): note: vedere la dichiarazione di 'v8::MicrotasksCompletedCallback'
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(9121): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(7322): note: vedere la dichiarazione di 'v8::MicrotasksCompletedCallback'
/ Building module: gl, Completed: 0c:\mx\chero\node_modules\gl\src\native\webgl.cc(463): warning C4312: 'reinterpret_cast': conversione da 'GLint' a 'GLvoid *', di dimensioni maggiori [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
| Building module: gl, Completed: 0 procs.cc
- Building module: gl, Completed: 0c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(9113): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(7322): note: vedere la dichiarazione di 'v8::MicrotasksCompletedCallback'
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(9121): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
c:\mx\chero\node_modules\gl\10.1.5\include\node\v8.h(7322): note: vedere la dichiarazione di 'v8::MicrotasksCompletedCallback'
- Building module: gl, Completed: 0 win_delay_load_hook.cc
/ Building module: gl, Completed: 0 Creazione della libreria C:\MX\Chero\node_modules\gl\build\Release\webgl.lib e dell'oggetto C:\MX\Chero\node_modules\gl\build\Release\webgl.exp
- Building module: gl, Completed: 0webgl.obj : error LNK2019: riferimento al simbolo esterno "__declspec(dllimport) public: class std::shared_ptr __cdecl v8::ArrayBuffer::GetBackingStore(void)" (__imp_?GetBackingStore@ArrayBuffer@v8@@QE
AA?AV?$shared_ptr@VBackingStore@v8@@@std@@XZ) non risolto nella funzione "public: __cdecl Nan::TypedArrayContents::TypedArrayContents(class v8::Local)" (??0?$TypedArrayContents@D@Nan@@QEAA@V?$Loca
l@VValue@v8@@@v8@@@Z) [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
C:\MX\Chero\node_modules\gl\build\Release\webgl.node : fatal error LNK1120: 1 esterni non risolti [C:\MX\Chero\node_modules\gl\build\webgl.vcxproj]
× Rebuild Failed

An unhandled error occurred inside electron-rebuild
node-gyp failed to rebuild 'C:\MX\Chero\node_modules\gl'.
Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1

Error: node-gyp failed to rebuild 'C:\MX\Chero\node_modules\gl'.
Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1

at ModuleRebuilder.rebuildNodeGypModule (C:\MX\Chero\node_modules\electron-rebuild\lib\src\module-rebuilder.js:193:19)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
```
## Expected behavior

I don't know if it's usual that it throws the node module mismatch on windows, but I think it should build also with electron-rebuild(?), at least it does with simple npm build/rebuild.

## Version information

### Nodejs: v12.18.3

### Electron: 10.1.5

### Electron-rebuild: 2.3.2

### Brain.js: 2.0.0-beta.2

## _How_ important is this (1-5)?

5, can't run my app on Windows

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.