Git Product home page Git Product logo

electron-template's Introduction

Electron-Template

使用electron开发桌面端应用的启动模版。这个项目包含了桌面端代码和web端代码,其中桌面端有两个窗口,web端包含两个页面。

首页 设置页

已包含功能

桌面端

  • 已包含基础菜单配置:src/core/appMenu
  • 使用windowManager管理窗口,清晰易用,易配置:src/WindowManifest
  • 默认包含主窗口和一个设置窗口,满足80%的桌面端场景。
  • 支持webUI的本地/远程渲染模式,一键配置:forge.config.js
  • 默认启用沙盒模式,保护程序安全。
  • 已封装常用原生api,并导出到web端。

web端

  • 默认包含一个Vue3 + Element Plus的web项目
  • 包含了一个首页和一个设置页的基础ui
  • 已封装底层原生api,web端可直接引入调用:@/src/NativeService

代码结构

libs - 存放三方js库

pkg - 打包相关icon资源等

src - 桌面端主要代码

webapps - 存放webUI项目,可以有多个

www - 打包后的webUI代码,程序会加载这个目录下的html

forge.config.js - forge的配置文件,包括打包、编译插件等

如何使用

调试

  1. 安装npm包。
# 桌面端安装npm包
yarn
# web端安装npm包
cd webapps/vue3-webapp && yarn
  1. 确保forge.config.js中,启用的是远程渲染模式
module.exports = {
  envConfig: {
    localRender: false,
    ...
  },
  ...
}
  1. 启动webUI。
yarn webDev
  1. 打开应用窗口
yarn start

打包

  1. 确保forge.config.js中,启用的是本地渲染模式
module.exports = {
  envConfig: {
    localRender: true,
    ...
  },
  ...
}
  1. 打包webUI到/www目录。
yarn webBuild
  1. 打包应用程序。(在mac上运行命令打包mac、在windows上运行命令打包windows)
yarn make

其他说明

  1. 如果不想把webUI打包到桌面应用中,或者UI频繁更新不想每次都打包。可以直接启用远程渲染模式,并修改baseUrl为自己的webUI访问地址。

注意这种方式不适合离线应用或者对FCP要求高的,因为远程渲染依赖网络,需要下载资源的时间。常规应用最好是离线加载,实现一键更新功能。

  1. 注意主进程和渲染进程是隔离的,主进程和渲染进程通信使用ipcMainipcRenderpreload脚本运行在渲染进程,并可以访问Node.jsapi。

electron-template's People

Contributors

missmess avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.