electron桌面应用开发electron-edge-js打包后调用失败Cannot find module ‘electron-edge-js‘

开发不做异常捕获,瞎折腾两三宿。
软件版本信息:
"vue": "^2.6.14"
"electron": "^13.0.0",
"electron-edge-js": "^14.16.1"

"electron-devtools-installer": "^3.1.0",
问题描述:
调试开发electron-edge-js的调用是正常的;打包后调用 electron-edge-js的页面白屏!刚开始没做异常的捕获,没找到问题的根源。
异常描述如下:

Error: Cannot find module 'electron-edge-js'
Require stack:
- electron/js2c/renderer_init
    at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
    at Function.o._resolveFilename (electron/js2c/renderer_init.js:33:1118)
    at Module._load (internal/modules/cjs/loader.js:732:27)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12684)
    at Function.o._load (electron/js2c/renderer_init.js:33:379)
    at Module.require (internal/modules/cjs/loader.js:959:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Module.6422 (app://./js/422.37914361.js:1:16871)
    at Function.n (app://./js/app.def4f4b9.js:1:7443)

解决方法:
参考《VUE+Electron+Edge开发中遇到的坑》文章的结尾部分,顺利解决:
vue.config.js中添加externals: ['electron-edge-js'],如下:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  pluginOptions: {
    electronBuilder: {
      // 与此无关代码省略
      externals: ['electron-edge-js']
    }
  }
})

这是什么原因?什么原理?知道的大佬评论区详解一下

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
使用electron-edge-js调用C程序需要进行以下步骤: 1. 安装electron-edge-js库:可以通过npm install electron-edge-js命令来安装electron-edge-js库。 2. 在Electron的渲染进程中引入electron-edge-js库:可以使用require函数将electron-edge-js库引入到Electron的渲染进程文件中。 3. 准备C函数:在C文件中定义需要调用的函数。 4. 编译C代码:使用C编译器将C代码编译成可执行文件(如Windows平台的.exe文件、Mac平台的.dylib文件等)。 5. 创建配置文件:创建一个userconfig文件,该文件用于配置C函数的名称和所对应的dll文件路径或so文件路径等。 6. 在Electron的渲染进程中调用C函数:使用electron-edge-js库的func函数和userconfig配置文件中定义的函数名称来调用C函数。 下面是一个简单的例子: ```javascript // 引入electron-edge-js库 const edge = require('electron-edge-js'); // 创建配置文件 const userConfig = { assemblyFile: 'path/to/your/dll/file', typeName: 'NameSpace.ClassName', methodName: 'FunctionName' }; // 调用C函数 const cFunc = edge.func(userConfig); cFunc(parameters, (error, result) => { if (error) { // 处理错误 console.error(error); } else { // 处理结果 console.log(result); } }); ``` 在这个例子中,我们首先引入electron-edge-js库,然后创建一个userconfig配置文件,并定义要调用的C函数的相关信息。之后,使用electron-edge-js库的func函数来调用C函数,并传入参数。最后,处理C函数的返回结果或错误信息。 需要注意的是,具体的操作步骤和配置文件的内容可能会因为不同的C程序和操作系统而有所差异,需要根据实际情况进行适当的调整。以上只是一个简单的示例,提供了使用electron-edge-js调用C程序的基本思路。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值