electron+umiJS4-react - 搭建桌面应用 - 使用umjs4搭建electron

1、打开命令行工具,切换路劲到工作空间下,执行一下脚本,创建项目

 npx create-umi@latest

 命令执行后,进入到你创建成功后目录中

2、安装必要(常用)的依赖

npm install electron electron-builder concurrently cross-env vite wait-on -D

npm安装electron 总是不成功.会卡在reify:lodash: timingreifyNode:node_modules/@types/node Completed in 578ms这里。

解决办法

先运行

npm install -g cnpm --registry=https://registry.npmmirror.com

再运行

cnpm install electron electron-builder concurrently cross-env vite wait-on -D

这时就能安装成功了

3、项目根目录下创建electron文件夹,electron文件夹下创建main.js 

const { app, BrowserWindow } = require('electron');
const path = require('path');

// 需要安装件 cross-env
const NODE_ENV = process.env.NODE_ENV;

function createWindow() {
    const win = new BrowserWindow({
        width: 1200,
        height: 700,
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false, // 设置为false,才能在渲染进程中使用electron api
        },
    });

    win.loadURL(NODE_ENV === 'development' ? `http://localhost:8000` : `file://${path.join(__dirname, '../dist/index.html')}`);
    if (NODE_ENV === 'development') {
        win.webContents.openDevTools();
    }
}

app.whenReady().then(() => {
    createWindow();
});

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

 4、packge.json中添加启动electron的启动脚本和electron程序入口

{
    "name": "umi-electron",
    "version": "0.0.0",
    "private": true,
    "author": "",
    "main": "electron/main.js",
    "scripts": {
        "dev": "umi dev",
        "build": "umi build",
        "postinstall": "umi setup",
        "setup": "umi setup",
        "start": "npm run dev",
        "electron": "wait-on tcp:8000 && cross-env NODE_ENV=development electron .",//新增
        "electron:server": "cross-env ELECTRON_BUILD=false concurrently -k \"npm start\" \"npm run electron\"",//新增
        "electron:build": "cross-env ELECTRON_BUILD=true npm run build && electron-builder"//新增
    },
    "build": {
        "productName": "umi-electron",
        "copyright": "Copyright C 2021 yxln",
        "nsis": {
            "oneClick": false,
            "allowToChangeInstallationDirectory": true
        },
        "files": [
            "dist/**/*",
            "electron/**/*"
        ],
        "directories": {
            "buildResources": "assets",
            "output": "dist_electron"
        }
    },
    "dependencies": {
        "umi": "^4.0.75"
    },
    "devDependencies": {
        "@types/react": "^18.0.33",
        "@types/react-dom": "^18.0.11",
        "concurrently": "^8.2.0",
        "cross-env": "^7.0.3",
        "electron": "^25.5.0",
        "electron-builder": "^24.6.3",
        "typescript": "^5.0.3",
        "vite": "^4.4.9",
        "wait-on": "^7.0.1"
    }
}

5、.umirc.ts中添加环境变量修改程序加载主页的路径

import { defineConfig } from "umi";

export default defineConfig({
  routes: [
    { path: "/", component: "index" },
    { path: "/docs", component: "docs" },
  ],
  history: { type: 'hash' },//新增
  publicPath: process.env.ELECTRON_BUILD == 'true' ? './' : '/',//新增
  npmClient: 'npm',
});

 6、配置完成

开发调试执行 

npm run electron:server

打包执行 

 npm run electron:build

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是基于 ReactElectron使用 electron-builder 进行打包的教程: 1. 创建 React 应用 首先,我们需要使用 create-react-app 工具创建一个 React 应用。在命令行中运行以下命令: ``` npx create-react-app my-electron-app ``` 这会在当前目录下创建一个名为 `my-electron-app` 的新应用。 2. 添加 Electron 接下来,我们需要在项目中添加 Electron。我们可以使用 `electron` 和 `electron-builder` 库来实现这一点。 在命令行中运行以下命令: ``` cd my-electron-app npm install --save-dev electron electron-builder ``` 3. 添加 Electron 入口文件 我们需要创建一个新文件 `public/electron.js`,这是 Electron 的入口文件。在这个文件中,我们需要引入 `electron` 模块并创建一个新的 Electron 窗口。 ```js const { app, BrowserWindow } = require('electron') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }) win.loadURL('http://localhost:3000') } app.whenReady().then(() => { createWindow() app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createWindow() }) }) app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit() }) ``` 这个文件创建了一个新的 Electron 窗口,并在窗口中加载了 React 应用的 `http://localhost:3000` 页面。 4. 修改 package.json 文件 我们需要修改 `package.json` 文件中的一些字段,以便 electron-builder 能够正确地打包我们的应用。 ```json { "name": "my-electron-app", "version": "0.1.0", "homepage": "./", "main": "public/electron.js", "build": { "appId": "com.example.my-electron-app", "productName": "My Electron App", "directories": { "output": "build" }, "files": [ "build/**/*", "node_modules/**/*", "public/**/*" ], "mac": { "category": "public.app-category.developer-tools", "icon": "public/icon.icns" }, "win": { "icon": "public/icon.ico" } } } ``` 这个文件中的 `main` 字段告诉 electron-builder 我们的 Electron 入口文件在 `public/electron.js`。`build` 字段中的其他字段指定了打包的一些设置,例如应用的 ID、名称、输出目录、文件列表和图标。 5. 添加打包脚本 最后,我们需要在 `package.json` 文件中添加一个打包脚本。 ```json { "scripts": { "start": "react-scripts start", "build": "react-scripts build", "pack": "electron-builder --dir", "dist": "electron-builder" } } ``` 这些脚本中的 `pack` 脚本会在开发模式下打包应用程序,而 `dist` 脚本会在生产模式下打包应用程序。 6. 运行应用 现在,我们可以运行应用程序。在命令行中运行以下命令: ``` npm start ``` 这将启动 React 应用程序。 然后,在另一个命令行窗口中运行以下命令: ``` npm run pack ``` 这将使用 `electron-builder` 打包应用程序,并在输出目录中生成一个可执行文件。 如果您想要构建一个安装程序,您可以运行以下命令: ``` npm run dist ``` 这将打包应用程序,并在输出目录中生成一个安装程序。 这就是使用 ReactElectron使用 electron-builder 进行打包的教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值