zoukankan      html  css  js  c++  java
  • electron-react-umi模板

    electron-react-umi-tpl

    github
    English Version

    更新日志:

    1. 2020-06-08 添加全量更新功能
    2. 2020-06-29 添加远程增量更新功能,无需下载包来重新安装更新;
    3. 2020-07-27 优化初始化客户端loading等待页面,优化页面
      中文
      English Version

    electron 8.2 + umi 3.1 + typescript react 16.12 + redux + antDesign 4.0 + eslint tslint react-tslint脚手架, 下载即用,已经为你做好了基座设施

    客户端集成:

    • [x] 自动更新(electron-builder)
    • [x] 托盘菜单 app启动loading加载条
    • [x] electron打印(electron 5.0以上支持)
    • [x] electron-log 本地日志 electron-store 本地存储
    • [x] app打包图标 添加增量更新
    • [x] 添加redux-devtools插件
    • [x] app崩溃信息采集
    • [x] app消息通知,快捷键等

    web端:

    1. 基于umi脚手架,基础配置已集成,开发者关注业务代码编写即可
    2. 本地存储redux(redux-saga)
    3. antDesign >= 4.0
    4. iconfont图标
    • 菜单配置 src/layouts/menu/config.tsx

    TODOLIST: 1. node Api功能封装与渲染进程业务解耦

    开启

    npm i
    npm start
    npm run pack // 默认根据当前系统打包
    npm run pack-mac // 打包mac平台
    npm run pack-windows // 打包windows平台
    npm run pack-all // 打包所有平台
    

    目录树

    |-- project
        |-- .editorconfig
        |-- .eslintrc.js
        |-- .gitignore
        |-- .gitlab-ci.yml
        |-- .prettierignore
        |-- .prettierrc.js
        |-- directoryList.md
        |-- package-lock.json
        |-- package.json
        |-- README.md
        |-- tsconfig.json
        |-- typings.d.ts
        |-- eslint-rules 自定义eslint配置
        |   |-- base.js
        |   |-- react.js
        |   |-- ts.js
        |-- src
            |-- main 主进程
            |   |-- app-update.yml 生产环境自动更新配置
            |   |-- bundle.js 自动生成
            |   |-- bundle.js.map
            |   |-- dev-app-update.yml 开发环境自动更新配置
            |   |-- index.js 入口
            |   |-- loading.html
            |   |-- preload.js
            |   |-- README.md
            |   |-- config 编译配置
            |   |   |-- config.js
            |   |   |-- webpack.config.js
            |   |-- controls 控制集
            |   |   |-- AppAutoUpdater.js
            |   |   |-- AppMainWindow.js
            |   |   |-- AppTray.js
            |   |   |-- electron-helper.js
            |   |-- print 打印
            |   |   |-- print.html
            |   |   |-- print.js
            |   |-- public 附件
            |   |   |-- icon.ico
            |   |   |-- icon.png
            |   |   |-- tray.png
            |   |-- script 编译脚本
            |       |-- build.js
            |-- render 渲染进程
                |-- .env
                |-- .umirc.ts
                |-- app.ts
                |-- global.less
                |-- README.md
                |-- .umi umi自动生成配置和插件等
                |   |-- umi.ts
                |   |-- core
                |   |-- plugin-dva
                |   |-- plugin-initial-state
                |   |-- plugin-model
                |   |-- plugin-request
                |-- api 接口集合
                |   |-- api.list.ts
                |-- assets 附件
                |   |-- image
                |   |   |-- yay.jpg
                |   |-- style
                |       |-- bootstrap-part.less
                |       |-- common.less
                |-- common 通用
                |   |-- enum.ts
                |   |-- global.ts
                |-- components 组件
                |   |-- readme.md
                |   |-- AutoUpdate
                |   |   |-- index.tsx
                |   |   |-- style.less
                |   |-- FormCps
                |   |   |-- index.tsx
                |   |   |-- readme.md
                |   |-- TableCps
                |       |-- index.tsx
                |       |-- readme.md
                |-- config 配置
                |   |-- iconfont.ts
                |   |-- menus.tsx
                |-- dist 本地打包生成文件
                |-- layouts 布局
                |   |-- index.less
                |   |-- index.tsx
                |   |-- header
                |   |   |-- index.less
                |   |   |-- index.tsx
                |   |-- loading
                |   |   |-- index.less
                |   |   |-- index.tsx
                |   |-- menu
                |       |-- index.less
                |       |-- index.tsx
                |-- mock
                |   |-- foo.ts
                |-- models redux
                |   |-- xxStore.ts
                |-- pages
                |   |-- home.normal.less
                |   |-- index.tsx
                |   |-- Foo 示例
                |   |   |-- index.tsx
                |   |   |-- components
                |   |   |   |-- TableList.tsx
                |   |   |-- models
                |   |   |   |-- foo.ts
                |   |   |-- services
                |   |       |-- foo.ts
                |   |-- Home 业务
                |       |-- Edge
                |       |   |-- index.tsx
                |       |-- Settings
                |           |-- index.tsx
                |-- utils 工具集
    
    

    eslint

    默认开启alloy配置
    eslint-config-alloy

    log

    • 本地调试日志
    const log = require('electron-log');
    // log.transports.file.file = 'xx/record.log' 本地可指定文件
    // 默认日志存放
    // on Linux: ~/.config/{appName}/log.log
    // on macOS: ~/Library/Logs/{appName}/log.log
    // on Windows: userAppDataRoaming{appName}log.log
    log.info('Hello, log');
    log.warn('Some problem appears');
    

    注意事项

    1. 下载依赖和打包运行错误,请用cnpm或者配置npm config的electron ERROR路径
    2. 任何地方的component文件夹名不可首字母大写 会被umi识别为路由而影响热加载等
    3. 卡在node install.js : npm config edit 添加:electron_mirror="https://npm.taobao.org/mirrors/electron/"
    4. 下载electron 8.2一直失败,请删除包,然后安装全局的8.2版本的electron即可
    5. 最新版本electron也可以尝试,求稳本地用8.2.0

    参考

    (官方electron文档)[https://www.electronjs.org/docs]
    (官方umi文档)[https://umijs.org/]

    github

  • 相关阅读:
    详解threading模块:Condition类的使用
    concurrent.futures 模块使用说明
    细读Spring源码(四)什么是IOC?
    OAuth 2.0系列(六) OAuth令牌
    OAuth 2.0系列(七) OAuth 2.0可能存在的安全漏洞及预防方法
    细读Spring源码(一)refresh()方法概览
    HashMap源码解读() put方法的实现过程
    跟着字节码追踪JAVA中的基本运算
    细读Spring源码(六)Spring源码设计架构
    细读Spring源码(五)AOP从实战到源码
  • 原文地址:https://www.cnblogs.com/mapleChain/p/12906098.html
Copyright © 2011-2022 走看看