Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
145
rated 0 times [  146] [ 1]  / answers: 1 / hits: 5318  / 4 Years ago, sat, june 20, 2020, 12:00:00

Is there any simple way I can setup an app with Electron-Forge and React? I am usin the webpack template but don't know what to do to get jsx to work. I have the react stuff in renderer.js


More From » node.js

 Answers
5

I figured it out,


    yarn create electron-app test --template=webpack
cd test

Then I installed babel with:


    yarn add @babel/core babel-loader @babel/preset-env @babel/preset-react --d

and react with:


    yarn add react react-dom

Created a .babelrc in project root with the following code:


    {"presets": ["@babel/preset-env", "@babel/preset-react"]}

and added the following to webpack.rules.js:


    {
test: /.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
}

changed renderer.js to renderer.jsx and changed stuff in package.json from this:


    "@electron-forge/plugin-webpack",
{
"mainConfig": "./webpack.main.config.js",
"renderer": {
"config": "./webpack.renderer.config.js",
"entryPoints": [
{
"html": "./src/index.html",
"js": "./src/renderer.js",
"name": "main_window"
}
]
}
}

to this:


    "@electron-forge/plugin-webpack",
{
"mainConfig": "./webpack.main.config.js",
"renderer": {
"config": "./webpack.renderer.config.js",
"entryPoints": [
{
"html": "./src/index.html",
"js": "./src/renderer.jsx",
"name": "main_window"
}
]
}
}

and finally replaced renderer.jsx with this:


    import './index.css';
import React from 'react';
import ReactDOM from 'react-dom';
console.log('Loaded React.');
ReactDOM.render(<div>Test.</div>, document.getElementById('root'));

and replaced index.html with this:


    <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>

</head>
<body>
<div id="root"></div>
</body>
</html>

[#3421] Wednesday, June 17, 2020, 4 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
ellisw

Total Points: 625
Total Questions: 92
Total Answers: 88

Location: Kazakhstan
Member since Mon, Sep 26, 2022
2 Years ago
ellisw questions
;