rust+neon+electron开发笔记

一、rust+neon开发node原生模块

1.安装并配置好rust开发环境;
2.安装neon-cli,安装命令:npm install neon-cli -g;
3.使用neon new [模块名称],生成rust+neon开发环境,生成的项目中已定义一个hello,node模块函数,可以使用neon build生成index.node文件,使用node lib/index.js即可完成初步测试;
4.neon开发文档示例和API见官网https://neon-bindings.com/;
5.使用neon开发node模块遇到的问题:
数据类型转换:
 法一:使用neon_serde库可以将rust任意类型的数据转换成neon js value类型数据,这个库不匹配neon0.5以上的版本,只支持neon0.5以下的版本。
 法二:使用serde_json库可以将rust任意类型的数据转换成neon js string类型数据,这个库没有使用限制,但是返回的结果值是一个Json字符串,需要在nodejs中转换一下才能使用。
下面是法二的转换代码:

let response = json!({
                    "list":result,
                    "total":total
                });
 Ok(cx.string(response.to_string()))

二、在electron 中使用rust+neon开发的node原生模块

搭建electron原生模块运行环境:
 1)安装vue-cli,安装命令:npm install @vue/cli -g,将安装最新的vue-cli脚手架;
 2)使用vue create [项目名称] 创建基于vue-cli脚手架最新的项目,可自定义使用vue-router vuex 等模块;
 3)进入项目根路径中,使用vue add electron-builder选择安装electron版本集成到vue-cli项目中,若想切换electron版本,执行命令npm uninstall electron&&npm install electron@x.x.x -d即可;
 4)可以查看package.json,有六种命令脚本定义,使用npm run electron:serve可以启动electon桌面程序,可以使用npm run electron:build编译electron桌面程序发行版
 5)将第一步的项目打包至根目录下的node_modules下,并在package.json中添加一行新的脚本命令:“neon:build”:“electron-builder-env neon build [模块名称] --release”,在第一步的项目路径中执行npm install 安装好相应的node依赖,在本部项目的根目录中安装electron-builder-env node依赖,然后执行npm run neon:build 即可编译成electron中使用的原生模块,如果命令中出现编译错误,可以尝试安装最新node windows-build-tools,命令行如下:npm install --global --production windows-build-tools,此命令在power shell中执行。
 6)在项目根路径中添加vue.config.js,内容如下

module.exports = {
    pluginOptions: {
        electronBuilder: {
            nodeIntegration: true,
            externals: ['模块名称'],
            builderOptions: {
                asar:false
            }
        }
    }
}

 开启nodeIntegration,即可在electron中使用原生模块的功能。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值