如何在我的项目目录中设置electron-builder.js?

bfnvny8b  于 2022-12-08  发布在  Electron
关注(0)|答案(1)|浏览(203)

my project's structure image
我正在试着做一个使用电子和React的项目。
所有与执行相关的设置都在package.json中完成。我编写的代码显示得很好。
然而,在通过electron-builder将我的代码构建到应用程序中的过程中出现了一个问题。
我在互联网上看了很多文档,但是我找不到一篇关于builder的很多选项的详细文章,或者其中的大多数我都不理解。我该如何在我的项目结构中配置electron-builder.js?
package.json中的build脚本应该做两件事,第一件事是通过webpack捆绑我的react项目并保存在build/react目录下,并将我刚刚通过electron-builder捆绑的文件(我猜这个捆绑的文件是一个渲染器)和electron的主进程合并。
第二件事是通过进程将可安装文件保存在dist目录下(抱歉,我不知道怎么表达)。
直到捆绑阶段,React项目进展顺利,但我在第二阶段卡住了,因为我不能正确配置电子构建器。
我认为需要在构建器的选项字段-〉文件字段中设置适当的选项。
如有任何帮助,我将不胜感激😭😭😭

xbp102n0

xbp102n01#

我最近在wrote a blog post中解释了如何从头开始创建一个电子应用程序(包括使用React和electron-builder)。electron-builder需要做一些修改,以便在电子应用程序中实现它。这些修改包括:
1.需要填充名称、描述、版本和作者字段。
1.需要填充构建字段。
1.应该将图标添加到您的项目中(对应于build.directories.buildResources属性)。示例文件可以通过here下载。
1.需要设置pack、dist和postinstall脚本。
1.删除预先存在的目录字段。
下面是一个示例package.json,您可以将其用作参考:

{
  "name": "simple-electron-template",
  "version": "0.0.1",
  "description": "My Electron application",
  "main": "app/electron/main.js",
  "private": true,
  "devDependencies": {
    "babel-loader": "^8.2.5",
    "cross-env": "^7.0.3",
    "css-loader": "^6.7.1",
    "electron": "^19.0.8",
    "electron-builder": "^23.1.0",
    "html-loader": "^4.1.0",
    "html-webpack-plugin": "^5.5.0",
    "style-loader": "^3.3.1",
    "webpack": "^5.73.0",
    "webpack-cli": "^4.10.0",
    "webpack-dev-server": "^4.9.3",
    "webpack-merge": "^5.8.0"
  },
  "scripts": {    
    "dev-server": "webpack serve --mode development --config ./webpack.development.js",
    "dev": "cross-env NODE_ENV=development electron .",    
    "preprod": "webpack --mode production --config ./webpack.production.js",
    "prod": "cross-env NODE_ENV=production electron .",
    "postinstall": "electron-builder install-app-deps",
    "pack": "electron-builder --dir",
    "dist": "electron-builder"
  },
  "build": {
    "productName": "MyProductName",
    "appId": "com.mycompany|electron.myproductname",
    "directories": {
        "buildResources": "resources"
    },
    "win": {
        "target": [
            "nsis",
            "msi"
        ]
    },
    "linux": {
        "target": [
            "deb",
            "rpm",
            "snap",
            "AppImage"
        ]
    }
  },
  "keywords": [],
  "author": "Me",
  "license": "ISC",
  "dependencies": {
    "@babel/core": "^7.18.6",
    "@babel/preset-env": "^7.18.6",
    "@babel/preset-react": "^7.18.6",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  }
}

如果您愿意,可以使用simple template作为参考。

相关问题