【问题标题】:Cannot require non-native module in electron child_process fork在电子 child_process fork 中不能需要非本机模块
【发布时间】:2019-01-09 04:07:35
【问题描述】:

我在我的 Electron 应用中使用 child_process fork 来执行繁重的任务,而不会降低用户界面的速度。

只要我尝试这一行,我的 child_process 就会退出:

const sqlite3 = require('@journeyapps/sqlcipher').verbose();

这可以正常工作,但是当我使用 electron-packager 和 electron-rebuild 将我的应用程序打包到 asar 文件中时,它就不行了。

我没有收到任何错误,child_process 'error' 事件没有被触发,但是'exit' 是用代码 1 触发的。

我假设由于 asar 文件,该进程无法找到该模块,因此当我尝试使用它时会发生致命错误。

请帮忙:(

【问题讨论】:

    标签: node.js electron child-process


    【解决方案1】:

    我认为这与这里的问题类似,请检查链接。您可以使用 child.stderr 数据事件处理程序来捕获错误并进行调试。

    Node child process exits immediately after packing the electron app

    【讨论】:

    • 您好,感谢您的回复! “叉子”有类似的解决方案吗?我认为 stderr 仅适用于 exec
    • 好的,我已经知道如何使用 sterr,但我什么也没看到。我在 child_process 的第一行放置了一个 console.log,但我在 stout.on('data') 事件中什么也没得到......只有在我使用安装程序在 Windows 上安装我的应用程序后才会出现此问题电子安装程序
    • 在使用fork的时候有没有找到捕捉错误的方法?
    • 嗨,很抱歉回复晚了,但是不,我没有找到错误的来源,我最终使用了新的 BrowserWindow 而不是子进程。感谢您的回复,祝您有美好的一天!
    • 你可以设置'silent: true'选项来捕捉使用fork时的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    相关资源
    最近更新 更多