使用Eletron + Angular 8 开发Mac/Win 桌面应用
解决问题
使用Eletron 快速搭建,并可以轻松使用js/ts技术和第三方npm包开发跨平台(Win/Mac)桌应用。
项目初始化
首先可以按照下面步骤,初始化一个项目。 https://www.techiediaries.com/angular-electron/
复杂度适中项目的实例:
使用Eletron angular 8 开发的可导入/导出和操作Excel的简单调班程序。
一些主要概念和文件的说明:
app.js这个入口文件是eletron,主进程的入口文件,可以抽象的理解为B/S架构中的后端,一般的Angular 项目是不用设置。
而原来Angular 的所有js文件由,eletron的渲染进程执行。两个进程之间可以通过eletron ipc,进行事件响应式的通信和数据传递
关于打包:
使用npm的election-packager
在package.json中添加: "build": "electron-packager . schedule --win --platform=win32 --arch=ia32 --overwrite --icon=./src/favicon.ico --electron-zip-dir=C:\Users\Administrator\Downloads\”,
在把eletron 打包成不同操作系统的桌面应用是,eletron 会自动下载不同操作系统的依赖包。 国内网络环境的话,建议去淘宝等国内镜像手动下载需要的包,在命令中手动指定包的位置。
关于打包参数 —igonre
有的教程会建议—igonre= node_module ,在打包的时候不要打包node_module 文件目录 这个在eletron主进程没有引入第三方包的时候是可以的,能节省很多空间,但是如果主进程引入了第三方包,设置这个选项就会报错
关于electron-rebuild
部分第三方包需要用electron-rebuild 重新编译,在打包后才能被eletron,主进程运行
Eletron 官方文档: https://www.electronjs.org/docs
关于国内镜像
淘宝镜像的eletron 的目录地址书写有误,可以切cnpm 或者拿到地址后手动下载。