Electron rebuild fails on Windows
- 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
Assessment
This issue has not been assessed yet.