首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子:在macOS和Windows之间共享同一个项目文件夹

电子:在macOS和Windows之间共享同一个项目文件夹
EN

Stack Overflow用户
提问于 2020-09-16 08:58:09
回答 1查看 575关注 0票数 1

目标

我读过许多关于应用程序引导和构建管道的电子教程,并且假设您可以有一个项目来处理跨平台操作。

但是在包装和构建过程中多次失败之后,我终于意识到我的假设可能是错误的。

问题

下面是我想要的基于电子伪造的工作流:

1.在Windows上创建应用程序框架

代码语言:javascript
复制
yarn create electron-app my-app

cd my-app

yarn add my-dependency

yarn start

yarn make

一切进展顺利。现在进入macOS

2.转乘macOS项目

在macOS上,运行该应用程序将导致错误

代码语言:javascript
复制
cd my-app

yarn start

错误如下所示

代码语言:javascript
复制
$ yarn start
yarn run v1.22.4
$ electron-forge start
✔ Checking your system
✔ Locating Application
✔ Preparing native dependencies: 1 / 1
✔ Launching Application
/path/to/my-app/node_modules/electron/dist/electron.exe: /path/to/my-app/node_modules/electron/dist/electron.exe: cannot execute binary file
error Command failed with exit code 126.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

所以我盲目地在macOS上重新安装电子

代码语言:javascript
复制
yarn add electron

yarn start

yarn make

在macOS上一切都很顺利。

现在回到Windows。

3.返回Windows进行二次检查

这一次。我遇到了与第二步相似的问题,Windows发行版现在出现了错误的电子二进制。

调查结果

我发现这个文件经常被覆盖,即使我在Windows和macOS之间传输项目文件时仔细地合并了。

代码语言:javascript
复制
my-app/node_modules/electron/path.txt

它包含到电子可执行文件的硬编码路径:

macOS

代码语言:javascript
复制
Electron.app/Contents/MacOS/Electron

Windows:

代码语言:javascript
复制
electron.exe

解决办法

根据当前平台的不同,我可以通过将预定义的元数据复制到项目文件夹中来对此添加预构建步骤。但是像这样的黑客对于像电子这样的框架来说听起来很蹩脚。

问题

因此,对我来说,这种元数据安排使得Windows和macOS之间很难共享同一个项目。我无法想象电子开发人员是这样工作的。

那我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-16 10:17:09

基本上,您根本不应该提交node_modules。有些后安装脚本可能会为特定的操作系统编译包,而且文件夹通常很大。

此外,您不应该提交任何生成、包或编译命令的结果。通常,应该忽略dist文件夹。

您的存储库应该只包含代码和配置文件。这样做的想法是,提交这些文件和文件夹是没有意义的,因为要在任何机器上再现结果,就必须执行所有必要的步骤: windows计算机、macOS计算机、CI环境等。例如(这些是伪命令):

  1. npm inpm ci
  2. npm run build
  3. electron package
  4. etc

因此,应该将所有这些文件夹添加到您的.gitignore文件中:

代码语言:javascript
复制
# compiled output
/dist
/tmp
/out-tsc
/packages

# dependencies
/node_modules
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63916585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档