在 Mac 上构建后在电子应用程序中找不到模块
Posted
技术标签:
【中文标题】在 Mac 上构建后在电子应用程序中找不到模块【英文标题】:Modules not found in electron app after build on mac 【发布时间】:2020-11-15 00:43:54 【问题描述】:我现在正在使用一个使用 vue 和 typescript 的小型电子应用程序。当我在开发模式下运行应用程序时,一切正常,但是当我使用电子生成器构建应用程序时,一些模块会不知何故丢失。在我的例子中,模块adm-zip
和sudo-prompt
在构建过程中不知何故消失了。所以当应用程序启动时,我在这行const AdmZip = window.require('adm-zip');
上收到错误我已经尝试用不同的模块切换模块,但这似乎并不重要。我想这是 webpack 和 typescript 的问题,但由于我不是 webpack/electron 的人,我肯定在这里错过了一些东西。其他模块正在工作,比如所有节点的东西或我也在使用的 electron-store
模块。
这是一个常见问题吗?我是否必须以不同方式导入模块? Import
或者普通的require
不行,我总是要做window.require
这将是回购: https://github.com/w3champions/w3champions-launcher 在 AddLauncherStuff 分支上
【问题讨论】:
【参考方案1】:好的,我终于找到了问题:adm-zip
具有本机依赖项,因此您必须将其作为外部依赖项添加到 vue.config.js
中,如果它们具有依赖模块,这也应该适用于其他模块。我在项目的顶部文件夹中添加了以下vue.config.js
和adm-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 上,当我删除导入并注释掉一些代码时,我意外地修复了构建。当前版本现在不再像描述的那样工作了:/我也在使用电子生成器,而不是打包器。以上是关于在 Mac 上构建后在电子应用程序中找不到模块的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter/Android 构建中找不到 protoc-3.9.2-osx
在 Electron + React + Webpack 设置中找不到模块“电子”
在打包的电子应用程序中找不到图像资产 - angular4 和 webpack