electron-egg electron-egg
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
❤️成为赞助商
  • 快速入门

    • 介绍
    • EE框架是什么?
    • 安装
    • 快速开始
    • 配置
    • 基础功能

    • 生成软件

    • 升级

    目录

    配置

    # 基础 config 文件

    # 位置
    ./electron/config/
    
    # 说明
    config.default.js // 默认配置文件,开发环境和生产环境都会加载
    config.local.js // 开发环境配置文件,追加和覆盖default配置文件
    config.prod.js // 生产环境配置文件,追加和覆盖default配置文件
    encrypt.js     // 代码加密的配置
    nodemon.json   // 开发环境,代码(监控)热加载
    

    # 参数:appInfo 对象

    • name 应用名称
    • baseDir 框架中electron目录路径,如果使用加密功能,打包后路径为 ./public/electron
    • env 环境变量,local-本地,prod-生产环境
    • home APP根目录路径
    • root APP在操作系统中的数据目录,根据环境变量而变化
    • appUserDataDir APP在操作系统中的数据目录,与环境变量无关
    • userHome 操作系统用户的home目录
    • appVersion APP版本号
    • isPackaged APP是否已经打包
    • execDir APP安装后,可执行程序(exe、dmg、dep)的根目录

    # 属性说明

    # 开发模式配置

    config.developmentMode = {
        default: 'vue',
        mode: {
          vue: {
          	protocol: 'http://', // 自定义协议头
            hostname: 'localhost',
            port: 8080
          },
          react: {
            hostname: 'localhost',
            port: 3000
          },
          html: {
            hostname: 'localhost',
            indexPage: 'index.html' // 首页
          },
        }
    };
    

    # 开发者工具

    config.openDevTools = false;
    

    # 应用程序顶部菜单

    * boolean | string
    * true, false, 'dev-show'(dev环境显示,prod环境隐藏)
    config.openAppMenu = true;
    

    # 主窗口

    // 更多属性,见文档:https://www.electronjs.org/zh/docs/latest/api/browser-window#new-browserwindowoptions
    config.windowsOption = {
    	title: 'EE框架', // 软件顶部或左上角名称
      width: 980, // 软件窗口宽度
      height: 650, // 软件窗口高度
      minWidth: 800, // 软件窗口最小宽度
      minHeight: 650, // 软件窗口最小高度
      webPreferences: {
        //webSecurity: false, // 如果需要跨域,请打开
        contextIsolation: false, // 设置此项为false后,才可在渲染进程中使用electron api
        nodeIntegration: true, // node模块
     		//preload: path.join(appInfo.baseDir, 'preload', 'bridge.js'),
      },
      frame: true,
      show: true, 
    	icon: path.join(appInfo.home, 'public', 'images', 'logo-32.png'),
    };
    

    # 业务日志

    config.logger = {
      appLogName: `ee-${dayjs().format('YYYY-MM-DD')}.log`, 
      errorLogName: `ee-error-${dayjs().format('YYYY-MM-DD')}.log` 
    }
    

    # 远程web地址 (可选)

    config.remoteUrl = {
      enable: false, // 是否启用
      url: 'https://discuz.chat/' // Any web url
    };
    

    # 内置socket服务

    # 第三方软件,可通过socket-client监听端口,与ee框架通信
    config.socketServer = {
      enable: false, // 是否启用
      port: 7070, // 默认端口
      isDynamic: false, // 如果值为false,框架默认使用port端口(如果默认端口被使用,则随机获取一个);如果为true,默认端口无效,框架随机生成
      path: "/socket.io/", // 默认路径名称
      connectTimeout: 45000, // 客户端连接超时时间
      pingTimeout: 30000, // 心跳检测超时时间
      pingInterval: 25000, // 心跳检测间隔
      maxHttpBufferSize: 1e8, // 每条消息的数据最大值 1M
      transports: ["polling", "websocket"], // http轮询和websocket
      cors: {
        origin: true, // http协议时,要设置允许跨域
      }
    };
    

    # 内置http服务

    # 可在前端、浏览器、终端命令中,访问EE程序  
    config.httpServer = {
      enable: false, // 是否启用
      https: {
        enable: false, 
        key: '/public/ssl/localhost+1.key', // key文件
        cert: '/public/ssl/localhost+1.pem' // cert文件
      },
      port: 7071, // 默认端口(如果端口被使用,则随机获取一个)
      cors: {
        origin: "*" // 跨域
      },
      body: {
        multipart: true,
        formidable: {
          keepExtensions: true
        }
      },
      filterRequest: {
        uris:  [
          'favicon.ico' // 要过滤的请求uri
        ],
        returnData: '' // 任意数据类型
      }
    };
    

    # 主进程

    config.mainServer = {
      protocol: 'http://', // 或 https://
      host: '127.0.0.1',
      port: 7072, // 默认端口(如果端口被使用,则随机获取一个)
    	ssl: {
        key: '/public/ssl/localhost+1.key', // key文件
        cert: '/public/ssl/localhost+1.pem' // cert文件
      },
      options: {} // https://www.electronjs.org/zh/docs/latest/api/browser-window#winloadurlurl-options
    }; 
    

    # 应用自动升级

    electron-egg < v2.3.0

    // 新版本的该功能已经移到插件功能里面
    config.autoUpdate = {
      windows: false, // windows平台
      macOS: false, // macOs 需要签名验证
      linux: false, // linux平台
      options: {
        provider: 'generic', // or github, s3, bintray
        url: 'http://kodo.qiniu.com/' // resource dir, end with '/'
      },
      force: false, // 强制更新(运行软件时,检查新版本并后台下载安装)
    };
    

    #

    # 插件功能

    /**
     * 插件功能
     * @param window 官方内置插件
     * @param tray 托盘插件
     * @param security 安全插件
     * @param awaken 唤醒插件
     * @param autoUpdater 自动升级插件
     * @param javaServer java项目插件
     * @param example demo插件
     */
    config.addons = {
      window: {
        enable: true,
      },
      tray: {
        enable: true,
        title: 'EE程序',
        icon: '/public/images/tray_logo.png'
      },
      security: {
        enable: true,
      },
      awaken: {
        enable: true,
        protocol: 'ee',
        args: []
      },
      autoUpdater: {
        enable: true,
        windows: false, 
        macOS: false, 
        linux: false,
        options: {
          provider: 'generic', 
          url: 'http://kodo.qiniu.com/'
        },
        force: false,
      },
      javaServer: {
        enable: false,
        port: 18080,
        jreVersion: 'jre1.8.0_201',
        opt: '-server -Xms512M -Xmx512M -Xss512k -Dspring.profiles.active=prod -Dserver.port=${port} -Dlogging.file.path="${path}" ',
        name: 'java-app.jar'
      },
      example: {
        enable: true,
      },
    };
    

    文档:插件模块

    # 加密配置

    ./config/encrypt.js
    

    详情见:代码加密

    上次更新: 2025/04/10, 03:07:49
    快速开始
    目录结构

    ← 快速开始 目录结构→

    Theme by Vdoing | Copyright © 2023-2025 哆啦好梦 | 京ICP备15041380号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×