NiceFish桌面端开发:Electron集成与打包部署完整指南
NiceFish桌面端开发Electron集成与打包部署完整指南【免费下载链接】NiceFishNiceFish美人鱼 是一个系列项目目标是示范前后端分离的开发部署模式包括: 浏览器环境、移动端环境、Electron 环境后端有两个版本SpringBoot 版本和 SpringCloud 版本。请不要吝惜你的⭐️ Star ⭐️星星越多动力越足。下一个版本会引入 Angular 最新的 signal 特性。项目地址: https://gitcode.com/gh_mirrors/ni/NiceFishNiceFish美人鱼是一个系列项目目标是示范前后端分离的开发部署模式包括浏览器环境、移动端环境和Electron桌面环境。本文将详细介绍如何为NiceFish项目集成Electron并完成打包部署帮助开发者快速构建跨平台桌面应用。准备工作环境搭建与项目克隆在开始Electron集成之前需要确保开发环境已满足以下要求Node.js 14.x或更高版本npm 6.x或更高版本Angular CLI 16.x项目已使用的版本首先克隆项目代码库git clone https://gitcode.com/gh_mirrors/ni/NiceFish cd NiceFish安装项目依赖npm installElectron集成从Web到桌面应用的转变安装Electron核心依赖虽然项目package.json中未直接包含Electron依赖但我们可以通过以下命令添加npm install electron --save-dev npm install electron-builder --save-dev创建Electron主进程文件在项目根目录创建electron-main.js文件作为Electron应用的入口点const { app, BrowserWindow } require(electron); const path require(path); function createWindow() { // 创建浏览器窗口 const mainWindow new BrowserWindow({ width: 1200, height: 800, webPreferences: { nodeIntegration: true, contextIsolation: false } }); // 加载Angular构建的index.html mainWindow.loadFile(path.join(__dirname, dist/NiceFish/browser/index.html)); // 打开开发者工具 mainWindow.webContents.openDevTools(); } app.whenReady().then(() { createWindow(); app.on(activate, function () { if (BrowserWindow.getAllWindows().length 0) createWindow(); }); }); app.on(window-all-closed, function () { if (process.platform ! darwin) app.quit(); });配置package.json在package.json中添加Electron相关脚本和配置main: electron-main.js, scripts: { electron:start: ng build electron ., electron:package: ng build --prod electron-builder }, build: { appId: com.nicefish.app, productName: NiceFish, directories: { output: electron-dist }, files: [ dist/**/*, electron-main.js ], win: { target: nsis, icon: src/assets/imgs/nice-fish.png }, mac: { target: dmg, icon: src/assets/imgs/nice-fish.png }, linux: { target: deb, icon: src/assets/imgs/nice-fish.png } }图1NiceFish应用在桌面环境中的运行界面开发与调试Electron与Angular的协同工作运行Electron开发环境执行以下命令启动Electron应用并加载Angular开发服务器# 首先启动Angular开发服务器 npm start # 然后在新终端启动Electron npm run electron:start调试技巧主进程调试在package.json中添加调试脚本scripts: { electron:debug: electron --inspect5858 . }渲染进程调试直接使用Chrome开发者工具Electron已集成Chrome的DevTools图2Electron应用调试界面可同时调试主进程和渲染进程打包部署生成跨平台安装包构建生产版本执行以下命令构建Angular应用并打包Electronnpm run electron:package打包完成后可在electron-dist目录下找到各平台的安装包Windows.exe或.nsis安装程序macOS.dmg磁盘镜像Linux.deb或.rpm安装包自定义打包配置通过修改package.json中的build配置可以自定义打包选项更改应用图标替换icon字段指向的图片文件修改输出目录调整directories.output配置添加应用元数据设置copyright、description等字段图3Electron打包后的文件结构分析常见问题解决依赖冲突问题如果遇到Electron与Angular依赖冲突可尝试# 清除npm缓存 npm cache clean --force # 删除node_modules并重新安装 rm -rf node_modules package-lock.json npm install跨平台兼容性Windows确保安装了Visual Studio Build ToolsmacOS需要Xcode命令行工具Linux安装必要依赖libgtk-3-dev、libnotify-dev等性能优化减小应用体积# 分析打包体积 npm run bundle-report优化启动速度减少主进程初始化工作使用app.on(ready)事件延迟加载非关键资源图4应用性能分析报告帮助识别优化点总结与后续扩展通过本文的指南你已经成功将Electron集成到NiceFish项目中并完成了桌面应用的打包部署。NiceFish作为一个示范前后端分离模式的项目未来还将引入Angular最新的signal特性进一步提升应用性能。后续可以考虑的扩展方向实现自动更新功能集成系统通知和托盘图标添加文件系统交互功能优化多窗口管理希望本文能帮助你顺利构建自己的Electron桌面应用如有任何问题欢迎查阅项目文档或提交issue。【免费下载链接】NiceFishNiceFish美人鱼 是一个系列项目目标是示范前后端分离的开发部署模式包括: 浏览器环境、移动端环境、Electron 环境后端有两个版本SpringBoot 版本和 SpringCloud 版本。请不要吝惜你的⭐️ Star ⭐️星星越多动力越足。下一个版本会引入 Angular 最新的 signal 特性。项目地址: https://gitcode.com/gh_mirrors/ni/NiceFish创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

PyTorch自定义Faster R-CNN工业落地实战:数据对齐、锚框重构与轻量部署

PyTorch自定义Faster R-CNN工业落地实战:数据对齐、锚框重构与轻量部署

1. 这不是调参游戏,而是一场数据、结构与工程的协同作战“How to Train a Custom Faster RCNN Model In PyTorch”——这个标题乍看是教程,实则是工业级目标检测落地的最小可行切口。我带团队在物流分拣线部署视觉识别系统时,前前后后迭代了7…

2026/7/15 8:20:20 阅读更多 →
单片机GD32F303RCT6 (Macos环境)开发 (二)—— 从零构建IAP双区工程

单片机GD32F303RCT6 (Macos环境)开发 (二)—— 从零构建IAP双区工程

1. IAP双区工程架构设计在嵌入式开发中,IAP(In-Application Programming)是一种非常重要的技术,它允许我们在不借助外部烧录器的情况下,通过应用程序自身对芯片的Flash进行编程。对于GD32F303RCT6这款Cortex-M3内核的M…

2026/7/15 8:16:19 阅读更多 →
css的一些特殊用法

css的一些特殊用法

1、只设置元素的长度最大为100%和行高,不论元素是多高,始终保持左右边框都是半圆。 content{max-width: 100%;padding: 12rpx 24rpx;line-height: 42rpx;border: 1px solid #dddddd;border-radius: 50vh;/* 辅助:高度/宽度自适应内容&#xf…

2026/7/15 8:14:19 阅读更多 →

最新新闻

资源监控实战:如何使用Intel RDT实时追踪应用性能指标

资源监控实战:如何使用Intel RDT实时追踪应用性能指标

资源监控实战:如何使用Intel RDT实时追踪应用性能指标 【免费下载链接】intel-cmt-cat User space software for Intel(R) Resource Director Technology 项目地址: https://gitcode.com/gh_mirrors/in/intel-cmt-cat 在当今的云计算和虚拟化环境中&#xff…

2026/7/15 9:18:45 阅读更多 →
mlx-community/gemma-4-e4b-it-6bit高级技巧:提升图像描述准确性的5个方法

mlx-community/gemma-4-e4b-it-6bit高级技巧:提升图像描述准确性的5个方法

mlx-community/gemma-4-e4b-it-6bit高级技巧:提升图像描述准确性的5个方法 【免费下载链接】gemma-4-e4b-it-6bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/gemma-4-e4b-it-6bit 在AI图像理解领域,mlx-community/gemma-4-e4b…

2026/7/15 9:18:45 阅读更多 →
Point Labeler高级技巧:使用OpenGL 4.0渲染引擎优化标注体验

Point Labeler高级技巧:使用OpenGL 4.0渲染引擎优化标注体验

Point Labeler高级技巧:使用OpenGL 4.0渲染引擎优化标注体验 【免费下载链接】point_labeler My awesome point cloud labeling tool 项目地址: https://gitcode.com/gh_mirrors/po/point_labeler Point Labeler是一款强大的点云标注工具,其核心功…

2026/7/15 9:16:45 阅读更多 →
Trae AI IDE:重构全栈开发工作流的工程化实践

Trae AI IDE:重构全栈开发工作流的工程化实践

1. 这不是“用AI写代码”,而是重构开发工作流的实战路径“使用AI进行全栈开发的思路——以Trae AI IDE为例”这个标题里藏着一个被多数人误读的关键点:它不等于“让AI替你敲代码”,而是在问——当一个IDE本身已深度内嵌大模型推理能力、上下文…

2026/7/15 9:14:44 阅读更多 →
终极指南:如何在Blender中实现3MF格式的完整导入导出

终极指南:如何在Blender中实现3MF格式的完整导入导出

终极指南:如何在Blender中实现3MF格式的完整导入导出 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否曾经为3D打印工作流中的文件格式兼容性问题而烦恼…

2026/7/15 9:10:43 阅读更多 →
openEuler容器镜像使用方法:简单高效的容器化解决方案

openEuler容器镜像使用方法:简单高效的容器化解决方案

openEuler容器镜像使用方法:简单高效的容器化解决方案 【免费下载链接】cloudnative Information summary and discussion platform for CloudNative SIG 项目地址: https://gitcode.com/openeuler/cloudnative 前往项目官网免费下载:https://ar.…

2026/7/15 9:10:43 阅读更多 →

日新闻

YOLO11 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

YOLO11 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

前言 本文介绍了面向红外小目标检测的时空特征融合模块——STFFM,用于增强复杂背景下目标与噪声、杂波的区分能力。该方法通过拼接空间特征与时间/运动特征,并结合通道注意力、空间注意力和残差增强机制,实现对关键语义通道与疑似目标区域的…

2026/7/15 0:01:00 阅读更多 →
YOLO26 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

YOLO26 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

前言 本文介绍了面向复杂背景小目标检测的时空特征融合模块——STFFM。该模块通过空间分支与时间/运动分支的特征拼接,引入通道注意力和空间注意力对融合特征进行自适应筛选,并结合残差增强与通道压缩,突出目标区域、抑制背景噪声。我们将 S…

2026/7/15 0:01:00 阅读更多 →
行星减速机为什么能提高扭矩?从功率守恒到输出扭矩校核

行星减速机为什么能提高扭矩?从功率守恒到输出扭矩校核

一、为什么减速以后扭矩会增大 旋转机械的功率、转速和扭矩之间存在以下关系: T 9550 P n 其中: T为扭矩,单位Nm; P为功率,单位kW; n为转速,单位r/min。 在功率基本不变的情况下:…

2026/7/15 0:03:00 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/14 16:53:23 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/14 14:00:13 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/14 7:15:24 阅读更多 →

月新闻