我无法使用ReactJS和Electron创建可运行的可执行文件

时间:2019-06-21 12:39:29

标签: reactjs electron electron-builder react-scripts

我对构建过程有些困惑。

  1. 我目前有一个ReactJS应用程序在dev的react-scripts上运行,并且它在Electron应用程序(正在连接到localhost:3000实例)中运行。
  2. 我正在分两个阶段使用电子生成器来生成我的应用程序文件(Mac)。
  3. 我正在使用Yarn作为我的包裹管理器。

我的package.json scriptsbuild属性如下所示(忽略的不重要属性):

  "scripts": {
    "start": "nf start -p 3000",
    "build": "react-scripts build",
    "preelectron-pack": "yarn run build",
    "electron-pack": "build -c.extraMetadata.main=src/start.js",
  },
  "build": {
    "appId": "nonExistant",
    "files": [
      "src/**/*",
      "public/*",
      "node_modules/**/*"
    ],
    "directories": {
      "buildResources": "public"
    }
  }

在我的主启动文件(在scripts.['electron-pack']中指定)中,我的start.js脚本看起来像任何样板react-electron启动脚本在我的'activate'事件期间运行的样子:

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

我的目录结构如下:

  • public/*是我的index.html文件所在的位置(未转译)。
  • src/*是我的reactJS项目所在的地方。
  • node_modules/*显而易见,
  • 将建筑物放入build/*
  • 分发内容放入dist/*

dist/mac/<name>.app打开我的应用程序文件时,我在控制台中收到以下消息: Not allowed to load local resource: file:///<path>/dist/mac/<name>.app/Contents/Resources/app.asar/public/index.html

将loadURL从../public/index.html更改为../build/index.html并不能解决它,并且给我相同的错误,指向完全相同的路径。

0 个答案:

没有答案