要求- 使用单一代码库在浏览器和 pc 中运行电子应用程序。
面临的问题- 能够在 pc 中作为桌面应用程序运行,但在浏览器中运行 localhost:3000 时(在我的情况下是 Chrome)面临一些与 window.require 相关的问题。在网上尝试了多种解决方案,但目前没有成功。
用例- 使用 ipcMain 和 ipcRenderer 在电子 js 中的 React 应用程序和 main.js 文件之间进行通信,仅适用于 pc 应用程序。(在浏览器中,我需要将其作为没有电子功能(ipcMain 和 ipcRenderer 通信)的简单 Web 应用程序运行,但我需要应用程序在浏览器中运行以及使用单个代码库)
包.json 文件
{
"name": "electron-react-redux",
"version": "0.1.0",
"private": true,
"main": "main.js",
"dependencies": {
"@material-ui/core": "^4.12.3",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"pouchdb": "^7.2.2",
"pouchdb-find": "^7.2.2",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-redux": "^7.2.4",
"react-scripts": "4.0.3",
"redux": "^4.1.1",
"redux-saga": "^1.1.3",
"uuid": "^8.3.2",
"web-vitals": "^1.0.1"
},
"devDependencies": {
"concurrently": "^6.2.0",
"electron": "^13.1.7",
"electron-packager": "^15.3.0",
"wait-on": "^6.0.0"
},
"scripts": {
"start": "concurrently cross-env BROWSER=none node server 'yarn react-start' 'wait-on http://localhost:3000/ && yarn electron-start'",
"build": "yarn react-build && yarn electron-build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"react-start": "BROWSER=none react-scripts start",
"electron-start": "ELECTRON_IS_DEV=1 electron .",
"react-build": "react-scripts build",
"electron-build": "electron-packager ./ --overwrite"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
我的 PC 配置- (macOs Big Sur | 版本 11.4)
由于我是电子 js 的新手,请帮助我提供一些有价值的意见。如果有人遇到并解决了这个问题,请指导我正确的方向。
如果问题未解决或需要其他任何内容,请告诉我。