美文网首页
Electron使用Node原生模块

Electron使用Node原生模块

作者: stevenjobs | 来源:发表于2016-04-13 15:48 被阅读6101次

    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 是一样的效果。

    npmrc文件

    • 项目配置 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内部配置参数,如果没有指定其它配置,则采用默认配置。

    相关文章

      网友评论

          本文标题:Electron使用Node原生模块

          本文链接:https://www.haomeiwen.com/subject/urkilttx.html