让电子包装器使用生产构建

Getting electron-packager to use production build

我有一个 create-react-app,我正在尝试找出如何让 electron-packager 使用生产版本创建 .exe。它继续使用 ./src

中的开发文件夹

运行

electron-packager . --no-prune --ignore=/node_modules --ignore=/e2e --overwrite --ignore=/src

不起作用。我也试过

electron-packager ./build --no-prune --ignore=/node_modules --ignore=/e2e --overwrite --ignore=/src

这是我的 package.json

中的相关条目
{
    "homepage": "./",
    "main": "src/electron-entry.js",
    "build": {
        "target": "nsis",
        "dir": "./build"
    }
}

这是我的 loadURL,它指向生产版本。在 electron-entry.js。这在我 运行 在开发环境中有效。

new BrowserWindow(BrowserWindowProps).loadURL(url.format({
    pathname: path.join(__dirname, '/../build/index.html'),
    protocol: 'file:',
    slashes: true
}));

electron-entry.js 中的数据是否与 electron-packager 使用的目录相关?

找到解决办法。我将电子入口文件放入根目录并更改了 loadURL 以反映这一点。

let startUrl = process.env.ELECTRON_START_URL || url.format({
    pathname: path.join(__dirname, '/build/index.html'),
    protocol: 'file:',
    slashes: true
});
mainWindow.loadURL(startUrl);

更改了我的 package.json 以反映此更改:

{
  "main": "./electron-entry.js",
}

那我运行

electron-packager . --no-prune --ignore=/node_modules --ignore=/e2e --overwrite --ignore=/src