如何解决在电子应用程序中处理特定于平台的依赖项
情况是这样的:
- 我有一个为 Windows、Linux 和 Mac 构建的电子/angular JS 应用
- 应用在 Linux 上运行时会略微改变其行为;它需要一个原生节点库,但仅限于在 Linux 上运行时。
- 这个原生节点库只能在 Linux 上构建。我的电子应用程序的 main.ts 文件中有代码,用于在 Linux 上运行时有条件地导入此库。
- 这个原生节点库捆绑了打字稿类型
- 我是这个原生节点库的维护者,所以我可以根据需要进行更改。
- 我仍然需要这个应用程序在任何平台上构建。我需要我的 Windows/Mac 开发人员能够在他们的机器上构建和运行这个应用程序,即使当他们运行它时,应用程序也不会动态加载这个库。
有人知道如何设置所有这些吗?
这是我尝试过的:
- 在 Linux 机器上构建时,使用某种 tool 来仅
npm install
库。这不起作用,因为 Angular 应用程序仍会在多个位置从库中导入类型,因此如果未安装库,则构建将在 Mac/Windows 上失败。 - 在 package.json 中正常包含库。这不起作用,因为构建然后在 Mac/Windows 上失败。即使应用在安装时使用库,
npm install
仍会尝试在任何平台上构建本机库,但没有成功。 - 将我的库包含为“optionalDependency”。我以为这个可以用,但电子仍然试图在每个平台上重建库,但没有用。
所以我被困住了,这就是我在这里的原因。有没有其他人必须在他们的“多平台”电子应用程序中包含特定于平台的本机节点库?如果是这样,你是怎么做的?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。