什么?董事长说一体两翼?海陆空加游击队?

33 阅读4分钟

大家好,我是爱好和平的大布布将军,谢谢光临,再见!!!

002wiWvPly1hnurhxqqxmg606w05vgyy02.gif

都知道我是一个打工仔,上面直接对接董事长,昨天上午接到董事长命令,收拾辎重立刻马上从北京市朝阳区静安中心撤回石景山地区。。。。。。(我心里又哭又笑,心想,你玩我呢?我屁股都没坐热。。。)

然而,上周一,我们才刚搬到静安中心,过去之前,大家伙和他各种劝说,通勤时间啊、成本啊,和他说了个三四遍,没用。开着他那不知道几几年的老奥迪A4,带着颠沛流离的我、同事、办公用品毅然出发。

我们董事长幻想和那边的项目中心,谈场甜甜的恋爱,你中有我我中有你。

美其名曰:“借鸡下蛋”。。。

20170930083359212.jpg

好一个借鸡下蛋,把我累够呛,这不,去了那边待了一周,就和人家闹分手。也就有了上面的战略撤退

回归正题,昨天下午撤回石景山游击大队后,董事长韬光养晦地提出:一体两翼+海陆空游击队战略指南。

我是谁,我在哪里?

我是一名开发啊,大哥!!!!!

好吧,我承认,他又赢了,**再一次地让我怀疑这个公司,怀疑他。**大哥是真飘啊~~~

不过,这都是小场面啊,兄弟姐妹们,为了这点“我南非”,为了证明咱们的实力,我实施了以下开发计划:

基于 Electron + React 框架开发的桌面演示系统,展示公司的产品和服务

技术栈

  • Electron - 桌面应用框架
  • React 18 - UI框架
  • React Router - 路由管理
  • Webpack - 构建工具
  • Babel - JavaScript编译器

功能特点

  • 公司首页:展示产品主体信息
  • 产品展示:AI获客、AIGEO
  • 产品详情页:详细的产品介绍和操作演示
  • React架构:组件化开发,易于维护和扩展

项目结构

desktopdemonstration/
├── public/
│   └── index.html          # HTML模板
├── src/
│   ├── components/         # React组件
│   │   ├── Home.js        # 首页组件
│   │   ├── Qianliyan.js   # 千里眼AI获客组件
│   │   └── Shunfenger.js  # 顺风耳AI获客组件
│   ├── App.js             # 主应用组件(路由配置)
│   ├── index.js           # 入口文件
│   └── styles.css         # 全局样式
├── dist/                  # 构建输出目录(自动生成)
├── main.js                # Electron主进程
├── webpack.config.js      # Webpack配置
├── .babelrc               # Babel配置
├── package.json           # 项目配置
└── README.md             # 项目说明

package.json

    "start": "npm run build && electron .",
    "dev": "concurrently \"webpack --mode development --watch\" \"wait-on dist/index.html && electron . --dev\"",
    "build": "webpack --mode production",
    "build:dev": "webpack --mode development",
    "pack": "npm run build && electron-builder --dir",
    "dist": "npm run build && electron-builder",
    "dist:win": "npm run build && electron-builder --win",
    "dist:win32": "npm run build && electron-builder --win --ia32",
    "dist:win64": "npm run build && electron-builder --win --x64"
  },

打包发布

  • NSIS安装程序release/xxx Setup x.x.x.exe(支持32位和64位)
  • 便携版release/xxx-x.x.x-portable.exe(64位)

安装程序特性

NSIS安装程序

  • ✅ 支持自定义安装路径
  • ✅ 自动创建桌面快捷方式
  • ✅ 自动创建开始菜单快捷方式
  • ✅ 支持卸载
  • ✅ 支持32位和64位系统

便携版

  • ✅ 免安装,直接运行
  • ✅ 单文件可执行程序
  • ✅ 适合临时使用或U盘携带

自定义配置

修改应用信息

编辑 package.json 中的以下字段:

{
  "name": "xxx-demo",
  "version": "1.0.0",
  "description": "xxxxxx桌面演示系统",
  "author": "xxxxxx"
}

添加应用图标

  1. 准备图标文件(ICO格式,建议256x256或512x512)
  2. 将图标文件命名为 icon.ico
  3. 放置到 build/ 目录

如果没有图标文件,打包时会使用默认图标。

实际开发中碰到问题(主要问题)

1. 主要问题:React Router 配置

在 Electron 中使用 BrowserRouter 时,由于 file:// 协议的限制,路由无法正常工作。已改为 HashRouter:

2. 资源路径问题

已在 webpack 配置中添加 publicPath: './',确保资源路径正确。

3.打包为Windows安装程序(NSIS)

遇到权限问题。在 Windows 上创建符号链接需要管理员权限。先调整配置,禁用代码签名并只生成 NSIS 安装程序。

  1. package.json中
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64",
            "ia32"
          ]
        },
        {
          "target": "portable",
          "arch": [
            "x64"
          ]
        }
      ],
      "icon": "build/icon.ico",
      "signingHashAlgorithms": [],
      "signAndEditExecutable": false,
      "signDlls": false
    },
  1. 这是 Windows 权限问题(无法创建符号链接)。先清理缓存,并设置跳过代码签名。执行

Remove-Item -Path "$env:LOCALAPPDATA\electron-builder\Cache\winCodeSign" -Recurse -Force -ErrorAction SilentlyContinue

$env:SKIP_NOTARIZATION='true'; $env:CSC_IDENTITY_AUTO_DISCOVERY='false'; npm run dist:win64 -- --config.win.sign=null

  1. npm run dist:win64 生成以下文件

    安装程序(NSIS)

    • 北京xxx Setup 1.0.0.exe — Windows 安装程序
    • 支持 32 位和 64 位系统
    • 包含安装向导
    • 自动创建桌面和开始菜单快捷方式
    • 可自定义安装路径

    便携版

    • 北京xxx-1.0.0-portable.exe — 便携版
    • 64 位系统
    • 免安装,直接运行

以上就是基于Electron + React框架开发桌面演示系统从搭建到打包的大致流程,用来对接海陆空游击队,实现一体两翼目标的重要组成部分

感谢大家的观看,如果大家有人也碰到这种公司董事长,大家伙有什么好的想法,欢迎评论区交流~~~

lg_90841_1619336946_60851ef204362.png