Thursday, 16 March 2017

How to rebuild native npm modules for Electron?

Please help me to understand how to rebuild the native npm modules for Electron 1.6.2?

I use steps from https://electron.atom.io/docs/tutorial/quick-start to create a simple Electron application.
I installed ref package and loaded it in main.js.
Now I need to rebuild ref package to have ability to use it in the Electron application.

I used following tutorial to rebuild the native package - https://github.com/electron/electron/blob/master/docs/tutorial/using-native-node-modules.md

There are 3 approaches how to rebuild the native npm packages:

1) "Installing modules and rebuilding for Electron using electron-rebuild":
I installed electron-rebuild npm package.
Then, according to tutorial, I need just to run following command:
.\node_modules.bin\electron-rebuild.cmd
But electron-rebuild tried to download https://atom.io/download/electron/v1.6.2/iojs-v1.6.2.tar.gz
Why it downloaded something from https://atom.io/download/electron if Electron release files are located here - https://github.com/electron/electron/releases?
Electron 1.6.2 was released only few weeks ago, but iojs-v1.6.2.tar.gz was released in Mar 2015.
Do I understand correctly that electron-rebuild downloads the wrong files?

2) Manually building packages for Electron using node-gyp.
set HOME=%USERPROFILE%/.electron-gyp
cd ./node_modules/ref
node-gyp rebuild --target=1.6.2 --arch=x64 --dist-url=https://atom.io/download/electron

And here again dist-url uses https://atom.io/download/electron.
Why?
I tried do not use --dist-url.
But in this case node-gyp downloads following files:
gyp http GET https://iojs.org/download/release/v1.6.1/iojs-v1.6.1.tar.gz
gyp http 200 https://iojs.org/download/release/v1.6.1/iojs-v1.6.1.tar.gz
gyp http GET https://iojs.org/download/release/v1.6.1/SHASUMS256.txt
gyp http GET https://iojs.org/download/release/v1.6.1/win-x64/iojs.lib
gyp http GET https://iojs.org/download/release/v1.6.1/win-x86/iojs.lib
gyp http 200 https://iojs.org/download/release/v1.6.1/SHASUMS256.txt
gyp http 200 https://iojs.org/download/release/v1.6.1/win-x64/iojs.lib
gyp http 200 https://iojs.org/download/release/v1.6.1/win-x86/iojs.lib
Is it correct?

3) Rebuild native packages using npm:
rem # Electron's version.
set npm_config_target=1.6.2
rem # The architecture of Electron, can be ia32 or x64.
set npm_config_arch=x64
set npm_config_target_arch=x64
rem # Download headers for Electron.
rem set npm_config_disturl=https://atom.io/download/electron
rem # Tell node-pre-gyp that we are building for Electron.
set npm_config_runtime=electron
rem # Tell node-pre-gyp to build module from source code.
set npm_config_build_from_source=true
rem # Install all dependencies, and store cache to ~/.electron-gyp.
set HOME=%USERPROFILE.electron-gyp
npm install

Again https://atom.io/download/electron.
Why?

Does anyone know how to rebuild ref native package for Electron 1.6.2 correctly?



via Volodymyr Bezuglyy

No comments:

Post a Comment