超详细!!!electron-vite-vue开发桌面应用之Electron Forge打包项目(三)

云风网
云风笔记
云风知识库

electronforge可将前端静态页面打包成.exe、.deb和.rpm等,能适配各种平台

一、安装依赖

javascript 复制代码
cd my-app
npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"

安装后package.json自动生成新的命令

javascript 复制代码
"scripts": {
   "dev": "vite",
   "build": "vue-tsc && vite build && electron-builder",
   "preview": "vite preview",
   "start": "electron-forge start",
   "package": "electron-forge package",
   "make": "electron-forge make"
}

直接运行npm run start,报错如下

这个报错信息表明你正在使用的 forge.config.js 文件被当作一个ES模块文件处理,因为它是一个.js扩展名的文件,并且在文件内部使用了ES模块的语法(例如 import, export 等)

解决这个问题的方法取决于你的具体需求和项目设置。以下是几种可能的解决方案:

如果你想要 forge.config.js 被当作CommonJS模块处理,你可以将文件扩展名改为 .cjs,Node.js 会默认将

.cjs 文件作为CommonJS模块处理。

如果你需要继续使用 .js 扩展名,并希望文件被当作ES模块处理,确保你的 package.json 文件中包含 "type":

"module",这样Node.js就会将你的项目中的 .js 文件作为ES模块处理。

如果你的项目同时包含CommonJS和ES模块,确保区分它们的文件。CommonJS模块通常是 .cjs 扩展名的,而ES模块通常是

.mjs 扩展名的。

如果你不希望更改文件扩展名,你也可以在 package.json 中设置 "type":

"commonjs",这样整个项目都会默认为CommonJS模块。

这里直接将forge.config.js改为forge.config.cjs,再次运行npm run start,打开出现白屏

javascript 复制代码
(node:78116) electron: Failed to load URL: file:///D:/webPro/yunfeng/electron-vite-project/dist/index.html with error: ERR_FILE_NOT_FOUND
(Use `electron --trace-warnings ...` to show where the warning was created)

这里是由于项目前端部分没有打包,打包文件未读取到,这里改造一下命令

javascript 复制代码
"scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview",
    "start": "vite build&&electron-forge start",
    "package": "vite build&&electron-forge package",
    "make": "vite build&&electron-forge make"
  }

再次运行npm run start 正常显示如下

执行npm run package和npm run make进行项目打包

这里的原因是package.json没有配置author和description

javascript 复制代码
"author": "nie-ch",
"description": "云风笔记桌面端",

再次执行npm run make,生成out/make文件夹,里面存在安装包exe文件

相关推荐
lemon_yyds2 小时前
Vue 项目嵌入 React H5 技术方案
vue.js·react.js
顽疲2 小时前
java springboot vue 养老系统源码详解:请假 care_leave 销假与床位停费日扣实践
java·vue.js·spring boot
szp20052 小时前
Cache API 会丢掉 URL 里的 #:我的 9 个模型分块一直写在同一条缓存上
javascript·浏览器
keyipatience2 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
xifangge20253 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript
honkun63 小时前
vue 表格组件 vxe-table 修改滚动条样式,修改滚动条样式,统一宽度、颜色与自动隐藏
前端·javascript·vue.js
不可能片场4 小时前
工程实践 一个缓存把选片从十分钟压到一分钟
前端·electron
FRing034 小时前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
171320330计算机毕设编程4 小时前
计算机毕业设计 基于springboot+vue的在线观鸟视频播放网站 LW PPT
java·大数据·vue.js·spring boot·算法·课程设计
大明二代5 小时前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能