IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Angular项目使用Electron打包为桌面程序 -> 正文阅读

[JavaScript知识库]Angular项目使用Electron打包为桌面程序

????????项目中,有时会需要将Web页面应用打包为桌面程序。像visual studio code就是使用Web页面打包的桌面程序。

????????本文记录了使用Electron打包Angular项目的步骤。前提条件是已有项目已经按照Angular脚手架进行创建及开发,并且能够正常发布。

1、安装Electron依赖库

????????执行以下命令安装配置依赖库:

npm config set ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/
npm install electron -g
npm install electron-packager -g

2、在项目src/目录下添加文件: el-main.js , package.json

????????添加后的目录结构:

????????其中 el-main.js 包含 electron 所需的启动程序入口,文件代码如下:

const?{?app,?Menu,?BrowserWindow?}?=?require('electron');
//?保持对window对象的全局引用,如果不这么做的话,当JavaScript对象被
//?垃圾回收的时候,window对象将会自动的关闭
let?win
function?createWindow()?{
????//?创建浏览器窗口。
????win?=?new?BrowserWindow({
????????width:?800,
????????height:?600,
????????minWidth:?500,
????????minHeight:?500,
????????webPreferences:?{ nodeIntegration:?true }
????})
????//?加载index.html文件
????win.loadFile('index.html')??//?这个路径可以根据你实际的项目目录结构进行修正
????//?打开开发者工具
????win.webContents.openDevTools()
????//隐藏菜单栏
????Menu.setApplicationMenu(null)
????//?当?window?被关闭,这个事件会被触发。
????win.on('closed',?()?=>?{
????????//?取消引用?window?对象,如果你的应用支持多窗口的话,
????????//?通常会把多个?window?对象存放在一个数组里面,
????????//?与此同时,你应该删除相应的元素。
????????win?=?null
????})
}
//?Electron?会在初始化后并准备
//?创建浏览器窗口时,调用这个函数。
//?部分?API?在?ready?事件触发后才能使用。
app.on('ready',?createWindow)
//?当全部窗口关闭时退出。
app.on('window-all-closed',?()?=>?{
????//?在?macOS?上,除非用户用?Cmd?+?Q?确定地退出,
????//?否则绝大部分应用及其菜单栏会保持激活。
????if?(process.platform?!==?'darwin')?{
????????app.quit()
????}
})
app.on('activate',?()?=>?{
????//?在macOS上,当单击dock图标并且没有其他窗口打开时,
????//?通常在应用程序中重新创建一个窗口。
????if?(win?===?null)?{
????????createWindow()
????}
})
//?在这个文件中,你可以续写应用剩下主进程代码。
//?也可以拆分成几个文件,然后用?require?导入。

?????????package.json 包含electron打包配置信息,代码如下:

{
????"name":?"my-project",
????"version":?"1.0.0",
????"main":?"el-main.js",
????"description":?"my-project",
????"author":?"abc@qq.com"
}

3、修改angular.json将上一步骤添加的文件加入到发布目录中

????????修改节点为: build.options.assets, 修改后的节点如下图所示:

4、修改项目原有的package.json添加打包指令

"pack":?"electron-packager?--electron-version=11.2.2?./dist/matrix?matrix?--platform=win32?--arch=x64??--app-version=1.0.0?--asar?--overwrite?--out=./dist"

????????其中 ?./dist/matrix 用于指定打包的文件的目录

????????如下图所示:

? ? ? ? 到此,调用npm run pack就可以进行打包操作了。(打包前应确保项目已经发布过,即?./dist/matrix 目录内有正确的已发布内容)。

????????运行结果如下图所示:

????????打包结束之后,你可以在项目的 dist 目录下找到两个文件夹:

????????|--dist

????????|--dist/matrix

????????|--dist/matrix-win32-x64

? ? ? ? 目录matrix-win32-x64中就是打包的桌面程序,点击里边的exe文件就可以运行程序。

????????如果需要打包linux环境的桌面程序可以添加对应的打包指令:

"pack4linux":?"electron-packager?--electron-version=11.2.2?./dist/matrix?matrix?--platform=linux??--arch=x64??--asar?--app-version=1.0.0?--out=./dist?--overwrite"

????????如果需要打包IOS环境的桌面程序可以添加对应的打包指令:

"pack4mac": electron-packager --electron-version=11.2.2?./dist/matrix?matrix --platform=darwin --arch=x64 --asar --app-version=0.0.0 --out=./dist?--overwrite"

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:23:15  更:2021-12-24 18:25:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:28:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码