在有网络连接的机器上打包 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 应用。
相关推荐
丷丩3 分钟前
MapLibre GL JS第27课:添加COG栅格源
javascript·map·mapbox·maplibre gl js
不好听6131 小时前
JavaScript 到底是怎么运行的?从编译阶段到执行上下文全面解析
javascript
丷丩2 小时前
MapLibre GL JS第29课:添加Canvas源
javascript·gis·map·mapbox·maplibre gl js
utf8mb4安全女神2 小时前
【rsyslog服务】把所有服务的“临界点”以上的错误都保存在/var/log/alert.log⽇志中
java·前端·javascript
csdn_aspnet2 小时前
javascript 算法 LeetCode 编号 70 - 爬楼梯
开发语言·javascript·算法·leetcode·ecmascript
swipe2 小时前
DeepAgents 多 Agent 深度调研助手工程实战:从 createDeepAgent 到可控调研工作流
javascript·面试·langchain
moMo3 小时前
JavaScript 变量提升,执行上下文里的各种门道
javascript·面试
weixin_471383033 小时前
由浅入深递归练习
前端·javascript·vue.js
丷丩3 小时前
MapLibre GL JS第21课:绘制GeoJSON点图标、注记
前端·javascript·gis·mapbox·maplibre gl js
丷丩4 小时前
MapLibre GL JS第20课:更新GeoJSON多边形
前端·javascript·gis·mapbox·maplibre gl js