【问题标题】:Modules not found in electron app after build on mac在 Mac 上构建后在电子应用程序中找不到模块
【发布时间】:2020-11-15 00:43:54
【问题描述】:

我现在正在使用一个使用 vue 和 typescript 的小型电子应用程序。当我在开发模式下运行应用程序时,一切正常,但是当我使用电子生成器构建应用程序时,一些模块会不知何故丢失。在我的例子中,模块adm-zipsudo-prompt 在构建过程中不知何故消失了。所以当应用程序启动时,我在这行const AdmZip = window.require('adm-zip'); 上收到错误我已经尝试用不同的模块切换模块,但这似乎并不重要。我想这是 webpack 和 typescript 的问题,但由于我不是 webpack/electron 的人,我肯定在这里错过了一些东西。其他模块正在工作,比如所有节点的东西或我也在使用的 electron-store 模块。

这是一个常见问题吗?我是否必须以不同方式导入模块? Import 或者普通的require 不行,我总是要做window.require

这将是回购: https://github.com/w3champions/w3champions-launcher 在 AddLauncherStuff 分支上

【问题讨论】:

    标签: typescript vue.js electron electron-builder


    【解决方案1】:

    好的,我终于找到了问题:adm-zip 具有本机依赖项,​​因此您必须将其作为外部依赖项添加到 vue.config.js 中,如果它们具有依赖模块,这也应该适用于其他模块。我在项目的顶部文件夹中添加了以下vue.config.jsadm-zip,现在它被烘焙到构建版本中。您不必将 vue.config.js 添加到任何构建步骤或任何内容中,只需将其添加到项目顶部就足以让 webpack 接受它。

    module.exports = {
      pluginOptions: {
        electronBuilder: {
          externals: ['adm-zip']
        }
      }
    }
    

    【讨论】:

    • 非常感谢您!我有一个 sqlite 库的引用,并且一直在尝试使应用程序在生产中运行,最后这对我来说也是缺少的一步。
    【解决方案2】:

    我在 Windows 操作系统中使用管理员权限执行了“npm run build”。在我的 Windows 中一切正常。

    希望这篇文章对你有所帮助。

    https://www.christianengvall.se/electron-packager-tutorial/

    【讨论】:

    • 我在 Mac 上,当我删除导入并注释掉一些代码时,我意外地修复了构建。当前版本现在不再像描述的那样工作了:/我也在使用电子生成器,而不是打包器。
    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 2019-12-30
    • 2021-03-27
    • 1970-01-01
    • 2016-11-30
    • 2017-02-02
    • 2020-06-07
    • 2015-01-18
    相关资源
    最近更新 更多