在 mac 上构建后在电子应用程序中找不到模块

Sim*_*s0n 2 typescript vue.js electron electron-builder

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

这是一个常见问题吗,我是否必须以某种方式以不同方式导入模块?Import还是正常的require不行,我总得做的window.require

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

Sim*_*s0n 5

好吧,我终于发现了问题:adm-zip具有天然的依赖性,因此必须将其添加为一个外部依赖vue.config.js这也应该对其他模块的工作藏汉,如果他们有depenant模块。我在项目的顶部文件夹中添加了以下内容vue.config.jsadm-zip现在它被支持到构建版本中。您不必在vue.config.js任何构建步骤或任何内容中添加 ,只需将它添加到您的项目顶部就足以让 webpack 接收它。

module.exports = {
  pluginOptions: {
    electronBuilder: {
      externals: ['adm-zip']
    }
  }
}
Run Code Online (Sandbox Code Playgroud)