热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

electron打包配置方案

本文采用electron结合angular-electron框架开发桌面应用。electron开发的客户端可以跨平台,一套代码可以打包成不同操作系统的应用包括主流的&

本文采用electron结合angular-electron框架开发桌面应用。electron开发的客户端可以跨平台,一套代码可以打包成不同操作系统的应用包括主流的:windows,mac,linux。通过

electron-builder模块进行打包,electron-builder.json是其配置文件:

{"productName": "",//打包后的app名称"directories": {"output": "app-builds"//打包输出的路径},
 //配置打包的文件"files": ["**/*","!*.ts","!*.code-workspace","!LICENSE.md","!package.json","!package-lock.json","!src/","!e2e/","!hooks/","!.angular-cli.json","!_config.yml","!karma.conf.js","!tsconfig.json","!tslint.json"],
  //打包windows的配置"win": {"icon": "dist","target": ["portable"]},
 //打包mac的配置"mac": {"icon": "dist","target": ["dmg"]},
//打包linux的配置"linux": {"icon": "dist","target": ["AppImage"]}
}

 以上是打包时的基本配置项。

最近开发的一个项目中遇到,开发一个桌面应用给两个用户群体使用,这两个用户群体的所使用的客户端的功能80%是相同的,而且后期也不会有很大的差异。这时就面临一个问题是用两套代码分别打包维护,还是使用一套代码,通过配置一些参数来控制打包。由于后期如果有优化需求,那么需要在两份代码中分别修改,相当于改两便,这是比较麻烦的。最后决定采用第二种解决方案。

具体的实施:

1、在整个项目中提取出一个公共的参数来标识不同的app,从而控制app内部一些视图的展示与否,或者功能的可用性

{appClass: 0 //0,1分别代表不同用户群体的app
}

  

2、两个app的名字不同可以通过在打包时加入

--config参数可以动态的配置参数,例如修改app的名称,--config.productName="appName"。这样就解决到了app名字的问题

3、我们怎么第一步的公共参数带入呢,这里我的方法是:

首先在根目录下定义两个配置文件devEnv.ts, officeEnv.ts,大致的格式如下

{env: 1 //这里env参数代表不同的客户端
}

 env参数1和0区分两个app

其次在第一步公共参数文件中引入env.ts

import env from 'env.ts'export default {env: env.env
} 

最后改造packjson中的启动项

"electron:mac-office": cp officeEnv.ts ./src/app/env.ts && npm run build:prod && npx electron-builder build --mac --config.productName='newAppName' --config.directories.output=app-mac/mac-office",
"electron:mac": "cp devEnv.ts ./src/app/env.ts && npm run build:prod && npx electron-builder build --mac --config.directories.output=app-mac/mac-dev",

  

 

转:https://www.cnblogs.com/leejay6567/p/10027686.html



推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • andr ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 本文总结了在使用Ionic 5进行Android平台APK打包时遇到的问题,特别是针对QRScanner插件的改造。通过详细分析和提供具体的解决方法,帮助开发者顺利打包并优化应用性能。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
  • ASP.NET MVC中Area机制的实现与优化
    本文探讨了在ASP.NET MVC框架中,如何通过Area机制有效地组织和管理大规模应用程序的不同功能模块。通过合理的文件夹结构和命名规则,开发人员可以更高效地管理和扩展项目。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
author-avatar
喜欢玩电脑游戏的我_425
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有