【问题标题】:Using create-react-app with electron-builder将 create-react-app 与 electron-builder 一起使用
【发布时间】:2019-02-05 04:40:30
【问题描述】:

我使用 create-react-app 创建了一个简单的应用程序,并对 package.json

进行了以下更改
{
  "main": "public/electron.js",
  "homepage": "./",
  "scripts": {
    "start": "node scripts/start.js",
    "electron-dev": "concurrently \"BROWSER=none yarn start\" \"wait-on http://localhost:3000 && electron .\"",
    "preelectron-pack": "yarn build",
    "electron-pack": "electron-builder build -m",
    "build": "node scripts/build.js",
    "prettify": "prettier --write \"src/**/*.js\"",
    "precommit": "yarn prettify",
    "test": "node scripts/test.js --env=jsdom"
  }
}

public 文件夹中的 electron.js 文件

const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow

const path = require('path')
const url = require('url')
const isDev = require('electron-is-dev')

let mainWindow

function createWindow() {
  mainWindow = new BrowserWindow({
    width: 1364,
    height: 768,
    webPreferences: {
      webSecurity: false
    }
  })
  mainWindow.setMinimumSize(1364, 768)
  mainWindow.loadURL(
    isDev
      ? 'http://localhost:3000'
      : url.format({
          pathname: path.join(__dirname, '../build/index.html'),
          protocol: 'file:',
          slashes: true
        })
  )
  mainWindow.webContents.openDevTools()
  mainWindow.on('closed', () => (mainWindow = null))
}

app.on('ready', createWindow)

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (mainWindow === null) {
    createWindow()
  }
})

在运行脚本electron-pack 时,它给了我这个错误: not allowed to load local resource file:///index.html

可能的问题是什么?

react-scripts 版本:1.1.5
电子生成器版本:20.28.2

【问题讨论】:

  • 您是否已经查看过github.com/electron/electron/issues/5107 中指出的解决方法?
  • @Neil 我将target: 'electron-renderer' 添加到生产配置(webpack.config.prod.js),现在应用程序加载 index.html 但应用程序文件构建通过 webpack 似乎没有加载。显示在 devTools 的 Network 选项卡中加载了 js 和 css 文件,但没有执行 js 文件

标签: electron create-react-app electron-builder


【解决方案1】:

我解决了。

问题在于react-routerBrowserRouter。我不得不将其更改为 HashRouter,现在所有文件和路由都能正常加载。

【讨论】:

  • 感谢您的回答。你救了我。我在过去 3-4 小时里偶然发现了这个。
猜你喜欢
  • 2019-01-30
  • 1970-01-01
  • 2017-10-26
  • 2021-01-30
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 2020-08-14
  • 2020-05-09
相关资源
最近更新 更多