热门标签 | 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



推荐阅读
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 在package.json中有如下两个对象:husky:{hooks:{pre-commit:lint-staged}},lint-staged:{src** ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 本文整理了Java中com.evernote.android.job.JobRequest.getTransientExtras()方法的一些代码示例,展示了 ... [详细]
  • Kali Linux 简介
    KaliLinux是世界渗透测试行业公认的优秀的网络安全审计工具集合,它可以通过对设备的探测来审计其安全性,而且功能完备,几乎包含了目前所 ... [详细]
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社区 版权所有