当前位置: 首页 > 知识库问答 >
问题:

前端 - 请问怎么在 wsl (debian)中为 electron-forge 项目打包 deb?

申屠森
2024-06-06

我直接进入wsl debian 跑 npm run make 结果指出来 squirrel 的包,为啥子捏。
不应该是deb包么
image.png
我尝试了
有在 debian linux 中重新安装依赖

npm i

然后运行

npm run make -- --platform linux

结果报错了

  › Cannot make for linux and target deb: the maker declared that it cannot run on win32.                                                                                         

共有2个答案

陶树
2024-06-06

electron 的编译会根据不同的系统进行编译
如果在wsl中进行编译,需要重新在 wsl 安装 nodejs 以及具体依赖。

首先在 wsl 中安装 nodejs( 建议使用nvm 或者 fnm

curl -fsSL https://fnm.vercel.app/install | bashsource /root/.bashrcfnm intall 20 fnm use 20

然后重新安装依赖

npm i

安装成功后编译可能还是失败,因为 缺少 dpkg 和 fakeroot 安装他

apt update && apt upgrade && apt install fakeroot dpkg -y

我使用vite 所以还需要安装 @rollup/rollup-linux-x64-gnu

npm i @rollup/rollup-linux-x64-gnu -D

然后重新运行 make 命令

npm run make

最后终于打包成功了。

陆俊捷
2024-06-06

在 WSL (Windows Subsystem for Linux) 中使用 Electron Forge 为 Electron 项目打包 .deb 文件时,如果你遇到了与 Squirrel 相关的错误或输出,这可能是因为 Electron Forge 试图为 Windows 平台打包应用程序,而不是 Debian 或其他 Linux 发行版。

Electron Forge 支持为多种平台打包应用程序,但你需要确保你正确配置了目标平台。默认情况下,如果你的开发环境在 Windows 上,Electron Forge 可能会尝试为 Windows 平台打包(即使用 Squirrel)。

为了在 WSL Debian 中为 Electron 项目打包 .deb 文件,你需要确保以下几点:

  1. 设置目标平台
    确保你的 package.json 文件中正确设置了 electronForgeConfig 下的 makers 配置,以包含 Debian 的打包器。例如:

    "electronForgeConfig": {  "makers": [    {      "name": "@electron-forge/maker-deb",      "config": {        // 这里可以添加针对 deb 打包的特定配置      }    }    // 其他可能的 makers 如 squirrel.windows 等  ]}
  2. 安装必要的依赖
    确保你已经安装了 @electron-forge/maker-deb 和其他必要的依赖。你可以通过运行以下命令来安装它们:

    npm install --save-dev @electron-forge/maker-deb
  3. 运行打包命令
    在配置好目标平台并安装了必要的依赖之后,你可以运行打包命令:

    npm run make

或者指定只打包 .deb

npx electron-forge make --targets=deb

使用 --targets=deb 参数可以确保 Electron Forge 只为 Debian 或 Ubuntu 打包 .deb 文件。

  1. 检查错误输出
    如果运行打包命令后仍然遇到问题,请检查终端输出的错误信息。错误信息通常会提供关于问题原因的线索,可能是配置问题、缺失的依赖或其他问题。

请注意,在 WSL 中打包 Linux 发行版的 .deb 文件可能受到 WSL 功能的限制,因为 WSL 主要是为了与 Windows 应用程序的兼容性而设计的。在某些情况下,直接在 Linux 环境中进行打包可能更为可靠和方便。如果你经常需要为 Linux 发行版打包 Electron 应用,考虑使用原生 Linux 环境可能是个好主意。

 类似资料:
  • electron打包vue项目为macOS应用必须使用mac电脑吗?在windows上是否可以?

  • vue3+vite打包的时候,报错Access is denied,请问怎么解决啊?重新装了node_modules包,用nvm试了npm的几个版本都不行

  • 如图,在 monorepo 中使用了 tailwindcss 后作为一个案例打包,并且按需生成了 dist/style.css 文件,但在演示项目中引入 css 文件时并没有生效也没有报错。 而后在演示项目也引用 tailwindcss 才得以生效,但显然这并不符合需求。 希望得到的结果是演示项目不需要使用 tailwindcss 就能让组件库的样式生效。 问题应该如何解决? 是否是我代码或配置有

  • 打开网址报错403 Forbidden,请问怎么解决?防火墙和代理都已经关闭

  • 请问打包和分发的区别是什么? 我在学习Electron的时候,我有看到 electron-builder 是打包工具; electron-forge 是打包/分发工具。 请问打包和分发的区别是什么呢?

  • 本文向大家介绍vue cli构建的项目中请求代理与项目打包问题,包括了vue cli构建的项目中请求代理与项目打包问题的使用技巧和注意事项,需要的朋友参考一下 在上篇文章给大家介绍了vue-cli webpack模板项目搭建及打包时路径问题的解决方法,可以点击查看。 vue-cli构建的项目中,生产模式下的打包路径、与生产模式下的请求代理简单示意 总结 以上所述是小编给大家介绍的vue cli构建

  • 单模块 maven 项目打包 在单一模块的maven项目开发中,我们通常在 src/main/resources 编写我们的配置文件,因此,在 maven 构建的时候,我们需要添加如下配置: <resources> <resource> <directory>src/main/resources</directory> <includes>

  • 请问通过webpack打包为esm包,npm link后包空对象,请问是怎么回事?导出的包有编译,npm link后得到的是{}对象 两个文件metab.ts: 入口文件metas.ts引入metab.ts: 这样打包后npm link,在其他项目里导入metas.ts,得到是一个空对象{},如果我把metas.ts去掉import,直接写上值可以得到结果 请问不能import是怎么回事呢?我的w