在有网络连接的机器上打包 electron 及其依赖项,在没有网络连接的机器上安装这些离线包

好的,下面是完整的安装语句,分为两部分:在有网络连接的机器上打包 electron 及其依赖项,在没有网络连接的机器上安装这些离线包。

在有网络连接的机器上打包 electron 及其依赖项

bash 复制代码
# 创建一个目录来存放离线包
mkdir offline-packages
cd offline-packages

# 下载 electron 包
npm pack electron

# 下载 electron 的依赖项(假设 @electron/get 是一个依赖项)
npm pack @electron/get

# 将生成的 .tgz 文件复制到目标机器上的某个目录
# 例如:E:\new\clipboard-saver\my-electron-app\offline-packages
cp electron-*.tgz /path/to/target/machine/E:/new/clipboard-saver/my-electron-app/offline-packages/
cp @electron/get-*.tgz /path/to/target/machine/E:/new/clipboard-saver/my-electron-app/offline-packages/

在没有网络连接的机器上安装离线包

bash 复制代码
# 创建项目目录并初始化一个新的 Node.js 项目
mkdir my-electron-app
cd my-electron-app
npm init -y

# 创建 offline-packages 目录并将 .tgz 文件放入该目录
mkdir offline-packages

# 安装离线包
npm install ./offline-packages/electron-33.2.0.tgz --save-dev
npm install ./offline-packages/@electron/get-2.0.3.tgz --save-dev

# 验证已安装的 Electron 版本
npx electron -v

# 创建主进程文件 main.js
echo "const { app, BrowserWindow } = require('electron')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  win.loadFile('index.html')
}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})" > main.js

# 创建 HTML 文件 index.html
echo "<!DOCTYPE html>
<html>
<head>
  <title>My Electron App</title>
</head>
<body>
  <h1>Hello, Electron!</h1>
</body>
</html>" > index.html

# 修改 package.json
echo "{
  \"name\": \"my-electron-app\",
  \"version\": \"1.0.0\",
  \"description\": \"\",
  \"main\": \"main.js\",
  \"scripts\": {
    \"start\": \"electron .\"
  },
  \"devDependencies\": {
    \"electron\": \"^33.2.0\"
  }
}" > package.json

# 运行应用
npm start
复制代码

说明

  1. 在有网络连接的机器上

    • 创建一个目录 offline-packages 来存放离线包。
    • 使用 npm pack 命令下载 electron 及其依赖项(如 @electron/get)。
    • 将生成的 .tgz 文件复制到目标机器上的 E:\new\clipboard-saver\my-electron-app\offline-packages 目录。
  2. 在没有网络连接的机器上

    • 创建项目目录并初始化一个新的 Node.js 项目。
    • 创建 offline-packages 目录并将 .tgz 文件放入该目录。
    • 使用 npm install 命令安装离线包。
    • 验证已安装的 Electron 版本。
    • 创建主进程文件 main.js 和 HTML 文件 index.html
    • 修改 package.json 文件以包含启动脚本。
    • 运行 Electron 应用。
相关推荐
菜鸟前端程序员17 分钟前
当 AI 文件遇上 PDF:一个基于 Electron + Ghostscript 的矢量格式转换引擎深度剖析
electron
SendTomo2 小时前
send.wang(私传网)基于网页P2P直连传输大文件的优势
javascript·网络·webrtc·html5·p2p
学习星球3 小时前
Astro 全栈实战:拆解 RealWorld 项目
前端·javascript·架构·系统架构·前端框架·c5全栈
张元清4 小时前
React useTimeout Hook:声明式 setTimeout 与自动清理 (2026)
javascript·react.js
禁止摆烂_才浅5 小时前
JavaScript 类型判断:instanceof 与 constructor 原理深度解析
前端·javascript·面试
Asize5 小时前
HTTP 明明无状态,登录态怎么就保住了——React + Zustand + JWT 鉴权全流程拆解
前端·javascript
张人玉6 小时前
基于 Vue 3 + ECharts + Three.js + Express + SQLite——智慧城市数字孪生可视化平台
javascript·vue.js·信息可视化·sqlite·echarts
爱酱丶6 小时前
VS Code 快速生成Vue3 + TypeScript + Setup 基础空模板
前端·javascript·typescript
Maxkim6 小时前
在 GitHub 仓库里配一个 AI Code Reviewer,自动审查 PR
前端·javascript
NeverSettle_6 小时前
Agent 如何快速调用公司接口?——CLI + Skill 实践与踩坑
前端·javascript·后端