使用node-oracledb驱动的Electron应用,打包发布版到新电脑上无法运行,是对所有电脑都有运行环境要求吗?

我在windows电脑上成功安装了运行node-oracledb驱动的所有运行环境,并在项目中成功npm install oracledb,并成功运行项目,也成功打包了我的electron应用,接下来,发布版的安装包或者运行包,在我自己的电脑上时,应用都可以正常运行,因为我电脑是安装了开发环境的,所有开发时候有的环境都有,但是我换了一台什么环境都没有的windows电脑就无法运行了,启动起来后会是一个空白窗口,所以我怀疑是node-oracledb引起的问题。

接下来我把我项目中的oracledb关联代码全部注释了,然后卸载了oracledb的驱动,重新打了一个包,这个包才可以在所有电脑上运行起来。

所以我感觉这是oracledb驱动引起的问题,感觉是环境的问题,是对电脑有直接的环境要求吗?还是我打包发布版本的时候,要把oracledb编译出来的什么东西也一起带上发布。

有人遇到过吗,有人可以帮我一下吗?非常感谢,困扰好久啊,oracledb我是没法放弃的,应用必须连接oracle,或者谁有更好的驱动介绍一下,让我绕过oracledb,当初准备驱动编译环境的时候,就是百般艰难呐,真是一个超级大坑呐,oracledb

阅读 4.6k
2 个回答

我估计你这个问题, 还是 .node 文件没包含在运行包里的问题...

是不是用了 webpack 之类的工具, 还是直接用了 electron-vue ?

你说的可以在自己电脑运行, 是因为 webpack 里的 node-loader 适用于服务器, 而不适用于 electron, 因为他只解析 .node 文件的绝对路径, 你可以通过把你的工程文件夹重新命名来判断是不是这个问题, 看看是不是你电脑里运行包也不好使了, 这个绝对路径在别人的电脑里不存在, 自然也是无法运行起来你的运行包...

可以看下这个库:
https://github.com/llwslc/ele...

  • 包含打包 native addons 示例

    • webpack 的 node-loader 模块, 在代码中将 node 文件识别为绝对路径, 无法将含有 native addons 的工程正确打包为可执行程序. 本例将 app/node_modules 也打包进 app.asar 中, 并将 require 代码写在 index.ejs 中 head 代码块中以此来解决打包问题.

  • 包含两种调试模式

    • developmentHot 模式适合前期阶段, 支持热更新, 快速开发.

    • developmentPack 模式适合打包前测试阶段, 模拟打包之前的程序结构, 更快定位打包后可能出现的问题.

通过 developmentPack 可以调试打包后出现的问题...

更多使用方法看 template/readme.md 吧...

本质上的解决方案是不在 node_modules 文件夹里使用 webpack, 根本的解决方案是提交代码给 node_loader, 使他可以拷贝 .node 文件到 webpack output 文件夹.

地址如下: https://github.com/llwslc/ele...

@llwslc

我按你说的打包做了一遍也把配置改了,然后我运行npm run dev 结果一直停在这里

clipboard.png

然后我直接打包了,打包成功了,但是打出来的运行包,我点击运行直接会报错恩

clipboard.png

好像说我的主入口设置的不对,我再entry那里改成了这样,和原来electron-vue那样,两块

clipboard.png

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题