first commit

This commit is contained in:
wangminngg
2025-12-02 17:41:15 +08:00
commit 2bc32c2e6b
23 changed files with 4913 additions and 0 deletions

234
README.md Normal file
View File

@@ -0,0 +1,234 @@
# FFI-NAPI Electron Application
基于 Electron 20 的 外壳程序。
## 特点
- **源码可见**:打包后 main.js、index.html、test.js 等文件保留在 resources/app 目录中
- **便携版**:无需安装,双击运行
- **支持 32 位和 64 位**
## 安装依赖
```bash
npm install
```
或使用国内镜像:
```bash
.\install-electron.bat
```
## 添加图标(必须步骤)
**在打包前必须完成:**
1. 创建 `build` 文件夹:
```bash
mkdir build
```
2. 准备一个 `.ico` 格式的图标文件
- 推荐尺寸256x256 像素
- 必须是 `.ico` 格式(不是 `.png` 或 `.jpg`
3. 将图标文件重命名为 `icon.ico`
4. 将 `icon.ico` 复制到 `build` 文件夹中
5. 验证图标文件:
```bash
node verify-icon.js
```
## 运行开发模式
```bash
npm start
```
## 打包便携版
### 推荐:使用完整重新打包脚本
```bash
.\rebuild-with-icon-fix.bat
```
### 单独打包
32位便携版
```bash
npm run build:32
```
64位便携版
```bash
npm run build:64
```
同时打包:
```bash
npm run build
```
## 便携版使用说明
### 打包后的文件结构
便携版首次运行后会自解压,生成以下目录结构:
```
你的文件夹/
├── FFI-NAPI-App Portable x64 1.0.0.exe # 主程序
└── (首次运行后自动生成)
├── resources/
│ ├── app/ # 应用源码目录(可编辑)
│ │ ├── main.js # 主进程文件
│ │ ├── index.html # 界面文件
│ │ ├── test.js # 业务逻辑文件
│ │ └── package.json # 配置文件
│ ├── exe/ # 外部可执行文件目录
│ │ └── Test.exe
│ └── electron.asar # Electron 核心(不可编辑)
└── ...其他 Electron 文件
```
### 便携版的优势
1. **源码可见**:所有 JavaScript 文件都在 `resources/app/` 目录中,未加密
2. **可以修改**:可以直接编辑 `resources/app/main.js` 等文件来调整功能
3. **便于调试**:出现问题时可以直接查看和修改源码
4. **无需重新打包**:小的修改可以直接编辑文件,无需重新打包
### 部署到其他电脑
直接复制整个文件夹到目标电脑即可,包括:
- 主 `.exe` 文件
- 首次运行后生成的所有文件和文件夹
### 修改便携版代码
1. 运行一次便携版程序(会自解压)
2. 找到 `resources/app/` 目录
3. 用文本编辑器打开需要修改的文件(如 `main.js`
4. 保存修改
5. 重新启动程序即可看到更改效果
### 测试便携版
```bash
.\test-portable.bat
```
此脚本会:
- 模拟便携版部署
- 自动复制 exe 文件夹
- 启动程序进行测试
## 输出文件
打包完成后,便携版程序将生成在 `dist` 目录中:
- 32位: `FFI-NAPI-App-Portable-ia32-1.0.0.exe`
- 64位: `FFI-NAPI-App-Portable-x64-1.0.0.exe`
便携版特点:
- 无需安装,双击即可运行
- 首次运行会自解压所有文件
- 源码保存在 `resources/app` 目录,可以直接修改
- 配置文件保存在程序同目录
- 可以放在 U 盘中使用
## 路径说明
### 开发环境
- 应用文件: `项目根目录/main.js`
- exe 文件路径: `项目根目录/exe/Test.exe`
### 打包后(便携版运行时)
- 应用文件: `resources/app/main.js`(可编辑)
- exe 文件路径: `resources/exe/Test.exe`
**重要:** 便携版不需要编辑任何代码就能正常运行,但如果需要修改,可以直接编辑 `resources/app/` 下的文件。
## 常见问题
### Q: 为什么选择不使用 asar 打包?
A:
- **便于修改**:用户可以直接修改代码,无需重新打包
- **易于调试**:出现问题时可以直接查看源码
- **透明化**:所有代码都是可见的,用户可以了解程序的工作原理
### Q: 如何修改便携版的代码?
A:
1. 首次运行便携版程序,让它自解压
2. 找到程序目录下的 `resources/app/` 文件夹
3. 用任何文本编辑器记事本、VS Code 等)打开要修改的文件
4. 保存后重启程序即可
### Q: 修改代码后需要重新打包吗?
A: 不需要。因为代码没有打包进 asar所以可以直接修改 `resources/app/` 下的文件。
### Q: 便携版的安全性如何?
A: 源码是明文的,任何人都可以查看和修改。如果需要保护代码,可以:
1. 将 `asar: false` 改为 `asar: true`
2. 使用代码混淆工具
3. 使用加密方案
### Q: 如何在便携版中调试?
A:
1. 编辑 `resources/app/main.js`
2. 找到 `webPreferences` 配置
3. 确保包含 `nodeIntegration: true` 和 `contextIsolation: false`
4. 取消注释 `mainWindow.webContents.openDevTools()` 来打开开发者工具
## 目录结构
### 打包前(项目目录)
```
ffi-napi/
├── main.js # Electron 主进程
├── index.html # 应用界面
├── test.js # FFI 调用模块
├── package.json # 项目配置
├── electron-builder.yml # 构建配置asar: false
├── build/ # 构建资源目录
│ └── icon.ico # 应用图标
├── exe/ # 可执行文件目录
│ └── Test.exe
└── dist/ # 打包输出目录
```
### 打包后(便携版运行后)
```
程序目录/
├── FFI-NAPI-App Portable x64 1.0.0.exe
├── resources/
│ ├── app/ # 应用源码(可编辑)
│ │ ├── main.js # 可以用记事本打开修改
│ │ ├── index.html
│ │ ├── test.js
│ │ └── package.json
│ ├── exe/ # 外部程序
│ │ └── Test.exe
│ └── electron.asar # Electron 核心
├── locales/
└── ...其他文件
```
## 注意事项
- 源码在 `resources/app/` 目录中是明文的,可以直接编辑
- 修改代码后无需重新打包,重启程序即可
- 如果需要保护代码,请修改 `electron-builder.yml` 中的 `asar: false` 为 `asar: true`
- 32位程序可以在64位系统上运行
- 64位程序只能在64位系统上运行
- 图标文件必须是标准的 `.ico` 格式
- Windows 会缓存图标,更换图标后需要清理缓存