Electron 使用Node原生模块

Posted 知否

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Electron 使用Node原生模块相关的知识,希望对你有一定的参考价值。

本节我们学习如何在 Electron 中使用 Node 原生模块。

Electron 支持原生的 Node 模块,但由于和官方的 Node 相比,Electron 有可能使用一个和我们系统上所安装的 Node 不同的 V8 引擎,所以使用的模块需要重新编译才能使用。如果我们想编译原生模块,则需要手动设置 Electronheaders 的位置。

如何安装原生模块

有三种安装原生模块的方法,分别是 :

  • Electron 安装并重新编译模块。
  • 通过 npm 安装原生模块。
  • Electron 手动编译。

为Electron安装并重新编译模块

最简单的方式就是通过 electron-rebuild 包为 Electron 重建模块,该模块可以自动确定 Electron 的版本,并处理下载 headers、为应用程序重建本机模块等步骤。

示例:

例如要通过 electron-rebuild 来重建模块,首先需要安装 electron-rebuild

npm install --save-dev electron-rebuild

每次运行 npm install 时,也会同时运行下面这条命令:

./node_modules/.bin/electron-rebuild

windows 下如果上述命令遇到了问题,可以尝试执行如下命令:

.\\node_modules\\.bin\\electron-rebuild.cmd

通过npm安装

我们还可以通过 npm 来直接安装原生模块。大部分步骤和安装普通模块时一样,但是需要自己设置一些系统环境变量。

示例:

例如要安装所有 Electron 的依赖:

# Electron的版本
export npm_config_target=1.2.3
# Electron的目标架构
export npm_config_arch=x64
export npm_config_target_arch=x64
# 下载Electron的headers
export npm_config_disturl=https://electronjs.org/headers
# 告诉node-pre-gyp我们是在为Electron生成模块
export npm_config_runtime=electron
# 告诉node-pre-gyp从源代码构建模块
export npm_config_build_from_source=true
# 安装所有依赖,并缓存到 ~/.electron-gyp
HOME=~/.electron-gyp npm install

为Electron手动编译

原生模块的开发人员如果想要在 Electron 中进行测试,可能要手动编译 Electron 模块。可以使用 node-gyp 来直接编译。

示例:

例如我们要告诉 node-gyp 去哪下载 Electronheaders,以及下载什么版本:

$ cd /path-to-module/
$ HOME=~/.electron-gyp node-gyp rebuild --target=0.29.1 --arch=x64 --dist-url=https://atom.io/download/atom-shell
  • HOME=~/.electron-gyp :设置去哪找开发时的 headers
  • --target=0.29.1 :设置了 Electron 的版本。
  • --dist-url=... :设置了 Electronheaders 的下载地址。
  • --arch=x64 :设置了该模块为适配 64 位操作系统而编译。

链接:https://www.9xkd.com/

以上是关于Electron 使用Node原生模块的主要内容,如果未能解决你的问题,请参考以下文章

在electron中使用node-serialport的正确姿势

如何为 Electron 重建原生 npm 模块?

Electron入门 02:进程模型进程间通信 与 Node模块使用

在Node / Electron环境中共享ESM“.js”模块

Electron截屏功能

如何在 Electron 中使用 node_modules?