gpt4 book ai didi

javascript - 使用electron-builder时如何修改app.asar的文件夹结构?

转载 作者:行者123 更新时间:2023-12-03 12:16:57 31 4
gpt4 key购买 nike

我正在使用 create-react-app (CRA) 创建和构建我的前端代码。我的(简化的)文件夹结构如下所示:

package.json
node_modules/
public/
└── electron.js
└── index.html
src/

我的 npm 脚本:
"build": {
"appId": "com.somedomain.app",
},
"scripts": {
"react-start": "react-scripts start",
"react-build": "react-scripts build",
"react-test": "react-scripts test --env=jsdom",
"react-eject": "react-scripts eject",
"electron-build": "electron-builder",
"release": "yarn react-build && electron-builder --publish=always",
"build": "yarn react-build && yarn electron-build"
}

当我运行“build”时,项目被构建并且有一个 build包含所有内容的文件夹,然后 Electron 使用该文件夹创建 app.asar文件。当我提取内容时,我看到以下结构:
package.json
node_modules/
build/
└── electron.js
└── index.html

electron-builder 是如何知道使用 build 的?我的项目文件夹中的文件夹?我尝试通过玩 "build" 来解决这个问题。我的 package.json 的字段如下:
"build": {
"appId": "com.somedomain.app",
"files": "app"
},

并重命名我的 build文件夹到 app但后来我收到以下错误:
 ⨯ Application entry file "build\electron.js" in the "[redacted][\app.asar" does not exist. Seems like a wrong configuration. 

似乎 Electron 仍在尝试运行 electron.js来自 build文件夹,现在 app.asar 中不存在该文件夹.

如何修改 app.asar 中的文件结构文件?是否必须包含 build文件夹?理想情况下,我希望具有以下结构:
package.json
node_modules
electron/
└── electron.js
frontend
└── index.html

我尝试修改 "files"更多字段,我尝试了 "extraFiles""buildResources"但即使我可以得到 app.asar 中的文件夹结构按照我想要的方式,我继续收到错误:
 ⨯ Application entry file "build\electron.js" in the "[redacted][\app.asar" does not exist. Seems like a wrong configuration. 

最佳答案

我发现了问题所在。显然,当 electron-builder 看到 react-scripts 在依赖项中时,它会自动使用一个名为 react-cra 的内置配置。 react-cra 的内置配置如下所示:

directories: {
buildResources: "assets"
},
files: ["build/**/*"],
extraMetadata: {
main: "build/electron.js"
}
extraMetadata场是什么导致
⨯ Application entry file "build\electron.js" in the "[redacted][\app.asar" does not exist. Seems like a wrong configuration.
错误。

为了防止使用 react-cra 内置配置,可以添加 "extends": null在他们的 package.json 的 "build" field 。通过以下配置,我得到了想要的结果:
"build": {
"appId": "io.gueney.app",
"extends": null,
"files": [
"electron/**/*",
"frontend/**/*"
]
},

关于javascript - 使用electron-builder时如何修改app.asar的文件夹结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61098553/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com