首页 > 其他分享 >copy Electron 离线环境打包解决方案(electron-forge) 未尝试

copy Electron 离线环境打包解决方案(electron-forge) 未尝试

时间:2025-01-21 15:10:37浏览次数:1  
标签:npm zip app 离线 Electron electron forge maker

 

1.在线环境准备

  1. 创建新项目:
  2. # 创建并进入项目目录
    mkdir my-electron-app && cd my-electron-app
    
    # 初始化项目
    npm init -y
    
    # 安装 electron
    npm install --save-dev electron
    
    # 安装 electron-forge
    npm install --save-dev @electron-forge/cli @electron-forge/maker-squirrel @electron-forge/maker-zip @electron-forge/maker-deb @electron-forge/maker-rpm
    
    # 使用 electron-forge 转换项目
    npx electron-forge import
    
  3. 下载所需的离线资源包
  4. # 在项目根目录创建离线资源文件夹
    mkdir electron-offline-packages
    cd electron-offline-packages
    
    # 下载需要的 npm 包
    npm pack electron
    npm pack @electron-forge/cli
    npm pack @electron-forge/core
    npm pack @electron-forge/maker-squirrel
    npm pack @electron-forge/maker-zip
    npm pack @electron-forge/maker-deb
    npm pack @electron-forge/maker-rpm
    
    # 下载 Electron 二进制文件
    # 从 https://npmmirror.com/mirrors/electron/ 下载对应版本
    # 例如下载 v25.9.8 版本:
    wget https://npmmirror.com/mirrors/electron/25.9.8/electron-v25.9.8-win32-x64.zip
    wget https://npmmirror.com/mirrors/electron/25.9.8/electron-v25.9.8-win32-ia32.zip
    wget https://npmmirror.com/mirrors/electron/25.9.8/SHASUMS256.txt
  5. 创建完整的项目模板:项目结构:
  6. my-electron-app/
    ├── src/
    │   ├── index.html
    │   ├── index.css
    │   ├── index.js
    │   └── preload.js
    ├── electron-offline-packages/
    │   ├── electron-25.9.8.tgz
    │   ├── electron-forge-cli-6.4.2.tgz
    │   ├── electron-v25.9.8-win32-x64.zip
    │   └── ...
    ├── package.json
    ├── forge.config.js
    └── .npmrc
  7. package.json:
  8. {
      "name": "my-electron-app",
      "version": "1.0.0",
      "description": "My Electron App",
      "main": "src/index.js",
      "scripts": {
        "start": "electron-forge start",
        "package": "electron-forge package",
        "make": "electron-forge make"
      },
      "author": "author",
      "license": "ISC",
      "dependencies": {
        "electron-squirrel-startup": "^1.0.0"
      },
      "devDependencies": {
        "@electron-forge/cli": "^6.4.2",
        "@electron-forge/maker-deb": "^6.4.2",
        "@electron-forge/maker-rpm": "^6.4.2",
        "@electron-forge/maker-squirrel": "^6.4.2",
        "@electron-forge/maker-zip": "^6.4.2",
        "electron": "25.9.8"
      }
    }
  9. forge.config.js:
  10. module.exports = {
      packagerConfig: {
        asar: true,
        download: {
          mirror: "https://npmmirror.com/mirrors/electron/",
          cache: "./electron-cache"
        }
      },
      rebuildConfig: {},
      makers: [
        {
          name: '@electron-forge/maker-squirrel',
          config: {
            name: 'my_electron_app'
          }
        },
        {
          name: '@electron-forge/maker-zip',
          platforms: ['darwin', 'win32']
        }
      ]
    };

     

  11. .npmrc:
  12. registry=https://registry.npmmirror.com/
    electron_mirror=https://npmmirror.com/mirrors/electron/
    electron-custom-dir=25.9.8
  13. 打包整个项目:
  14. # 将项目打包为 zip
    zip -r electron-project-template.zip my-electron-app

2.离线环境使用

  1. 解压项目模板:
  2. unzip electron-project-template.zip
    cd my-electron-app

     

  3. 创建 electron 缓存目录:
  4. mkdir -p electron-cache/electron/25.9.8

     

  5. 复制 Electron 二进制文件:
  6. # 将之前下载的 electron 二进制文件复制到缓存目录
    cp electron-offline-packages/electron-v25.9.8-win32-x64.zip electron-cache/electron/25.9.8/
    cp electron-offline-packages/SHASUMS256.txt electron-cache/electron/25.9.8/

     

  7. 离线安装依赖
  8. # 安装离线包
    npm install ./electron-offline-packages/*.tgz

     

  9. 执行打包:
  10. # 打包应用
    npm run make

     

  11. 打包后的输出目录:
  12. out/
    ├── make/
    │   └── squirrel.windows/
    │       └── x64/
    │           ├── my_electron_app-1.0.0 Setup.exe
    │           └── ...
    └── my-electron-app-win32-x64/
        └── my-electron-app.exe

    3.网络问题

  • 离线环境 npm run make 时会出现 econnrefuesd ip地址 错误 这个错误是因为在离线环境下还在尝试连接 npm 镜像源。
  • 需要完全禁用网络请求: 首先修改 .npmrc 文件:
  • registry=https://registry.npmmirror.com/  //或者换成本地代理地址http://localhost:4873/
    electron_mirror=file:///D:/Electron/my-electron-app/electron-cache/ //换成
    electron_custom_dir=25.9.8
    offline=true
    prefer-offline=true
    no-proxy=true
    https-proxy=false
    proxy=false

     

  • 修改 forge.config.js:
  • module.exports = {
      packagerConfig: {
        asar: true,
        download: {
          mirror: "file:///D:/Electron/my-electron-app/electron-cache/",
          cache: "./electron-cache",
          force: false
        },
        electronZipDir:'./electron-cache/electron/25.9.8/' // 这行☆☆☆☆☆
      },
      makers: [
        {
          name: '@electron-forge/maker-squirrel',
          config: {
            name: 'my_electron_app'
          }
        },
        {
          name: '@electron-forge/maker-zip',
          platforms: ['win32']
        }
      ],
      // 添加离线配置 ☆☆☆☆☆
      electronRebuildConfig: {
        onlyModules: [],
        force: false,
        offline: true
      }
    };

     

  • 确保电子缓存目录结构正确:
  • electron-cache/
    └── electron/
        └── 25.9.8/
            ├── electron-v25.9.8-win32-x64.zip
            ├── electron-v25.9.8-win32-ia32.zip (如果需要)
            └── SHASUMS256.txt

     

  • 运行打包时使用离线模式:
  • # Windows
    set ELECTRON_ENABLE_OFFLINE_MODE=1
    npm run make --offline
    
    # Linux/Mac
    export ELECTRON_ENABLE_OFFLINE_MODE=1
    npm run make --offline

     

 

标签:npm,zip,app,离线,Electron,electron,forge,maker
From: https://www.cnblogs.com/mrt-yyy/p/18683608

相关文章

  • 离线安装IDEA插件:详细步骤指南
    离线安装IDEA插件:详细步骤指南网络环境下载插件包访问https://plugins.jetbrains.com/一、准备工作找到可用的插件文件访问https://plugins.jetbrains.com/关键字搜索插件选择插件,进入详情页切换至Versions页,选择下载插件将下载的插件.zip文件复制到目标离线环......
  • electron-vite 你太优秀了
    目录安装说明开发注意源代码目录使用网页第三方插件调用electronAPI​编辑 ​编辑今天给大家推荐一个非常好用的electron构建工具,他是基于vite构建的一个工具,基本上把开发一系列需要的事情,都帮大家做好了。大家只需要像,写网页一样,就能制作出完美的桌面程序出来。 ......
  • 在离线环境使用nuget包
    原来程序集的引用一个项目所有功能我们不可能都自己写对吧。这个时代引用一大片的第三方包 项目源文件几百兆,有可能第三方包占了总体积99%。有可能我们自己写的代码不过几十行。想想我们原来的老时代的,如何引用一个第三方的组件,新建项目项目节点上右键 添加dll引用:......
  • 集成AI离线免费,全平台毫秒级快速处理!
    随着PS技术的发展,大家对图像的要求和处理更加的多样化,其中,抠图作为一种常见的图像处理操作,并不是每个小伙伴都完全掌握PS技能,对于那些复杂的抠图操作往往会显得捉襟见肘,近两年随着AI技术的进步,各类软件都和AI集合,希望通过AI快速、高效的实现某些操作;分享一款免费、离线并且......
  • Windows11 WSL离线安装Ubuntu子系统
    1.启用Linux子系统以管理员身份打开PowerShellEnable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux重启计算机。2.下载和安装WSL格式的系统镜像下载地址:https://cloud-images.ubuntu.com/wsl/以管理员身份打开PowerShellwsl--import......
  • 【前端开发】Electron 34 正式发布
    1月16日,Electron34正式发布。该版本的更新包括:核心依赖升级:Chromium升级至132.0.6834.83V8引擎升级至13.2Node.js升级至20.18.1新功能与改进:增加了WebFrameMain.collectJavaScriptCallStack()方法,用于获取无响应渲染器的JavaScript调用栈。引入了一系列API......
  • 【Eel库】用于制作类似 Electron 的离线 HTML/JS GUI 应用程序
    简介Eel是一个简单的Python库,用于制作类似Electron的离线HTML/JSGUI应用程序,并可以完全访问Python功能和库。Eel托管一个本地Web服务器,让您可以标注Python中的函数,以便从JavaScript调用它们,反之亦然。Eel旨在简化编写简短和简单的GUI应用程序的过......
  • 【Node.js渗透】安装与检测基于Electron的应用程序
    免责声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!三、说明传送门:......
  • centos7离线升级内核
    1.升级说明1.1系统默认信息系统版本:CentOS7.8默认内核版本:3.10.0-1127.el7.x86_641.2升级内核目的部署k8s需要1.3k8s官方要求cpu:2核以上mem:2G以上内核:4.x以上1.4升级内核版本(永久支持)CentOS7.8内核升级为:5.4.278 2.下载内核包地址(centos7内核升级)https......
  • Centos7.9离线部署ceph(octopus)
    原创文档编写不易,未经许可请勿转载,目前仅发布于博客园,其他平台均为非法转载。文档中有疑问的可以邮件联系我文章。邮箱:yinwanit@163.com说明文档适用于cenots7.9操作系统下部署cephoctopus版本分布式存储使用。离线部署的本质是先基于在线环境如vmwareworkstation虚拟机在线......