如何为Electron重建本机npm模块?

时间:2017-03-16 12:43:32

标签: node.js npm electron node-gyp

请帮助我了解如何为Electron 1.6.2重建原生npm模块?

我使用https://electron.atom.io/docs/tutorial/quick-start中的步骤创建了一个简单的Electron应用程序 然后我安装了ref包并将其加载到main.js.中 ref包 - 它是本机包。我必须重建这个包才能在Electron应用程序中使用它。

我使用以下教程重建本机包 - https://github.com/electron/electron/blob/master/docs/tutorial/using-native-node-modules.md

有三种方法可以重建本机npm包:

1)“使用电子重建安装模块并重建Electron”:
我安装了电子重建npm包 然后,根据教程,我只需运行以下命令:
\ node_modules.bin \电子rebuild.cmd
但电子重建试图下载https://atom.io/download/electron/v1.6.2/iojs-v1.6.2.tar.gz
如果Electron发布文件位于此处https://atom.io/download/electron,为什么它会从https://github.com/electron/electron/releases下载某些内容? Electron 1.6.2仅在几周前发布,但iojs-v1.6.2.tar.gz于2015年3月发布。
我是否正确理解电子重建下载了错误的文件?

2)使用node-gyp手动构建Electron包。
设置HOME =%USERPROFILE%/。electron-gyp
cd ./node_modules/ref
node-gyp rebuild --target = 1.6.2 --arch = x64 --dist-url = https://atom.io/download/electron

再次,dist-url使用https://atom.io/download/electron 为什么呢?
我试过不要使用--dist-url 但在这种情况下,node-gyp会下载以下文件:
gyp http GET https://iojs.org/download/release/v1.6.2/iojs-v1.6.2.tar.gz
gyp http 200 https://iojs.org/download/release/v1.6.2/iojs-v1.6.2.tar.gz
gyp http GET https://iojs.org/download/release/v1.6.2/SHASUMS256.txt
gyp http GET https://iojs.org/download/release/v1.6.2/win-x64/iojs.lib
gyp http GET https://iojs.org/download/release/v1.6.2/win-x86/iojs.lib
gyp http 200 https://iojs.org/download/release/v1.6.2/SHASUMS256.txt
gyp http 200 https://iojs.org/download/release/v1.6.2/win-x64/iojs.lib
gyp http 200 https://iojs.org/download/release/v1.6.2/win-x86/iojs.lib
这是对的吗?

3)使用npm重建本机包:
rem#Electron的版本。
设置npm_config_target = 1.6.2
rem #Electron的架构,可以是ia32或x64 设置npm_config_arch = x64
设置npm_config_target_arch = x64
rem#下载Electron的标题 rem set npm_config_disturl = https://atom.io/download/electron
rem#告诉我们正在为Electron构建的节点pre-gyp 设置npm_config_runtime =电子
rem#告诉node-pre-gyp从源代码构建模块 set npm_config_build_from_source = true
rem#安装所有依赖项,并将缓存存储到〜/ .electron-gyp 设置HOME =%USERPROFILE.electron-gyp
npm install

再次https://atom.io/download/electron
为什么?

有没有人知道如何正确重建Electron 1.6.2的ref native包?

1 个答案:

答案 0 :(得分:1)

你是对的,给node-gyp的版本映射到Electron版本而不是内部节点版本,因为那是上传头文件的版本。实际上这背后有一个更复杂的解释,但它对最终用户来说无关紧要。您提供的代码是正确的,来自文档。有用。无需了解原因的内部运作。