基础config文件

  1. # 位置
  2. ./electron/config/
  3. # 说明
  4. config.default.js // 默认配置文件,开发环境和生产环境都会加载
  5. config.local.js // 开发环境配置文件,追加和覆盖default配置文件
  6. config.prod.js // 生产环境配置文件,追加和覆盖default配置文件
  7. encrypt.js // 代码加密的配置
  8. 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)的根目录

    属性说明

开发模式配置

  1. config.developmentMode = {
  2. default: 'vue',
  3. mode: {
  4. vue: {
  5. hostname: 'localhost',
  6. port: 8080
  7. },
  8. react: {
  9. hostname: 'localhost',
  10. port: 3000
  11. },
  12. html: {
  13. hostname: 'localhost',
  14. indexPage: 'index.html' // 首页
  15. },
  16. }
  17. };

开发者工具

  1. config.openDevTools = false;

应用程序顶部菜单

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

加载loading页 (废弃)

  1. # ee-core@1.2.6版本废弃
  2. config.loadingPage = true;
  3. # 页面路径,可自行修改
  4. ./public/html/loading.html

主窗口

  1. // 更多属性,见文档:https://www.electronjs.org/zh/docs/latest/api/browser-window#new-browserwindowoptions
  2. config.windowsOption = {
  3. width: 980, // 软件窗口宽度
  4. height: 650, // 软件窗口高度
  5. minWidth: 800, // 软件窗口最小宽度
  6. minHeight: 650, // 软件窗口最小高度
  7. webPreferences: {
  8. //webSecurity: false, // 如果需要跨域,请打开
  9. contextIsolation: false, // 设置此项为false后,才可在渲染进程中使用electron api
  10. nodeIntegration: true, // node模块
  11. },
  12. frame: true,
  13. show: true,
  14. };

ee框架日志

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

远程web地址 (可选)

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

内置socket服务

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

内置http服务

  1. # 可在前端、浏览器、终端命令中,访问EE程序
  2. config.httpServer = {
  3. enable: false, // 是否启用
  4. https: {
  5. enable: false,
  6. key: '/public/ssl/localhost+1.key', // key文件
  7. cert: '/public/ssl/localhost+1.pem' // cert文件
  8. },
  9. port: 7071, // 默认端口(如果端口被使用,则随机获取一个)
  10. cors: {
  11. origin: "*" // 跨域
  12. },
  13. body: {
  14. multipart: true,
  15. formidable: {
  16. keepExtensions: true
  17. }
  18. },
  19. filterRequest: {
  20. uris: [
  21. 'favicon.ico' // 要过滤的请求uri
  22. ],
  23. returnData: '' // 任意数据类型
  24. }
  25. };

主进程

  1. config.mainServer = {
  2. host: '127.0.0.1',
  3. port: 7072, // 默认端口(如果端口被使用,则随机获取一个)
  4. options: {} // https://www.electronjs.org/zh/docs/latest/api/browser-window#winloadurlurl-options
  5. };

应用自动升级 (可选)

  1. config.autoUpdate = {
  2. windows: false, // windows平台
  3. macOS: false, // macOs 需要签名验证
  4. linux: false, // linux平台
  5. options: {
  6. provider: 'generic', // or github, s3, bintray
  7. url: 'http://kodo.qiniu.com/' // resource dir, end with '/'
  8. },
  9. force: false, // 强制更新(运行软件时,检查新版本并后台下载安装)
  10. };

被浏览器唤醒 (可选)

  1. config.awakeProtocol = {
  2. protocol: 'ee', // 自定义协议名(默认你的应用名称-英文)
  3. args: []
  4. };

托盘 (可选)

  1. config.tray = {
  2. title: 'EE程序', // 托盘显示标题
  3. icon: '/public/images/tray_logo.png' // 托盘图标
  4. }

加密配置

./config/encrypt.js
详情见:代码加密