electron 为什么当我更改代码时,我的电子应用程序没有更改?

h7appiyu  于 2022-12-08  发布在  Electron
关注(0)|答案(2)|浏览(387)

App.jsx

import * as React from 'react';
import * as ReactDOM from 'react-dom';

function render() {
    ReactDOM.render(<h2>Hello from React!</h2>, document.body);
}

render();

所以,现在我的朋友做了一个React网站,我必须尝试移植到一个电子应用程序,我从团队的Github。然而,当我把代码改为:
App.jsx

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import App from './App';

function render() {
    ReactDOM.render(<h1>Goodbye</h1>, document.body);
}

render();

什么都没有改变。弹出的只是之前的“Hello from React!”。我在所有代码文件中搜索vscode的“Hello from React!”的任何其他示例,但我没有看到任何示例。有人知道为什么会发生这种情况吗?我可以做些什么来修复它?

fae0ux8s

fae0ux8s1#

您需要重新打包应用程序:
第一个
然后,无论您在何处安装了应用程序(pkg而不是app builder),进入文件夹:

/path/to/<app name>/<app name>

然后单击文件

Update.exe

重新启动应用程序,它应该会更新。

uhry853o

uhry853o2#

您需要告诉应用程序监视更改...这是您必须首先做的:打开两个终端(cmd),然后运行一次:npm run watch//这将告诉react注意dev更改
在另一次运行中:npm run start//将启动电子本身
确保您的package.json脚本包含以下脚本

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "watch": "webpack --config webpack.common.js  --watch",
    "start": "electron ."
  },

//下面是配置了electron的main.js或index.js

const { BrowserWindow, app, ipcMain } = require('electron');
const path = require('path');
const electronReload = require('electron-reload')
require('electron-reload')(__dirname, {
    electron: path.join(__dirname, 'node_modules', '.bin', 'electron')
});
function createWindow() {
    const win = new BrowserWindow({
        width: 1024,
        height: 900,
        webPreferences: {
            nodeIntegration: true,
            worldSafeExecuteJavaScript: true,
            contextIsolation: false
        },
    })
    win.setMenu(null)
    win.loadFile('index.html');
    win.webContents.openDevTools();
    // add function to launch developer electron env
}

app.whenReady().then(createWindow);

相关问题