Electron 支持 Node 原生模块,但因为使用了与官方不同的V8版本,所以在编译本地模块时必须手动指定 Electron 的 headers 位置。
关于Electron如何使用Node原生模块,官方的这篇Using Native Node Modules有简单说明,但对于Windows下的说明不详细,新手安装时可能会有些问题。在这里我以安装node-ffi为例,写一下Windows的安装配置。
注意:安装前需要确保node-gyp已正确安装。
通过npm安装
官方文档以Linux/OS X为例,使用export来设置当前的环境变量:
# Electron's version.
export npm_config_target=1.6.8
# The architecture of Electron, can be ia32 or x64.
export npm_config_arch=ia32
export npm_config_target_arch=ia32
# Download headers for Electron.
export npm_config_disturl=https://atom.io/download/electron
# Tell node-pre-gyp that we are building for Electron.
export npm_config_runtime=electron
# Tell node-pre-gyp to build module from source code.
export npm_config_build_from_source=true
# Install all dependencies, and store cache to ~/.electron-gyp.
HOME=~/.electron-gyp npm install
而在Window中,相对应的设置命令为SET [variable=[string]]
:
set npm_config_target=1.6.8
set npm_config_arch=ia32
set npm_config_target_arch=ia32
set npm_config_disturl=https://atom.io/download/electron
set npm_config_runtime=electron
set npm_config_build_from_source=true
执行完后可以查看一下npm的设置信息,命令为npm config ls -l
,我的配置信息如下,可以看到增加了一组environment configs:
; cli configs
long = true
user-agent = "npm/3.8.3 node/v5.10.1 win32 ia32"
; environment configs
arch = "ia32"
build_from_source = true
disturl = "https://atom.io/download/electron"
registry = "https://registry.npm.taobao.org"
runtime = "electron"
target = "1.6.8"
target_arch="ia32"
; builtin config undefined
prefix = "C:\\Users\\Admin\\AppData\\Roaming\\npm"
; default values
...
...
userconfig = "C:\\Users\\Admin\\.npmrc"
...
...
注意,通过终端设置的变量,在关闭该终端后生命期就结束了,再次打开需要重新设置。如果不想每次都设置,可以将其写在.npmrc文件中。上一条命令中显示用户配置文件的路径为userconfig = "C:\\Users\\Admin\\.npmrc"
,在该文件中添加如下内容:
target=1.6.8
arch=ia32
target_arch=ia32
disturl=https://atom.io/download/electron
runtime=electron
build_from_source=true
registry=https://registry.npm.taobao.org
保存文件后执行npm install ffi
即可。如果只在某个项目中使用该配置,可以将该文件放在项目根目录下。安装完成后可以看到C:\Users\Admin\.node-gyp
目录中增加了iojs-1.6.8
文件夹。
npm配置
npm官方文档中介绍npm获取配置的来源有以下几种,按优先级排列:
- 在命令行中添加 --foo bar 来将 foo 的配置参数设为 "bar"。
- 以 npm_config_ 为前缀的环境变量会被解释为npm的配置参数。例如,在环境变量中设置 npm_config_foo=bar 就是把 foo 的配置参数设为 bar。配置参数不区分大小写, 所以设置 NPM_CONFIG_FOO=bar 是一样的效果。
- 项目配置 per-project config file (/path/to/my/project/.npmrc)
- 用户配置 per-user config file (~/.npmrc)
- 全局配置 global config file ($PREFIX/etc/npmrc)
- 内建配置 npm builtin config file (/path/to/npm/npmrc)
- 运行 npm config ls -l 来查看npm内部配置参数,如果没有指定其它配置,则采用默认配置。
网友评论