first commit
This commit is contained in:
234
README.md
Normal file
234
README.md
Normal 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 会缓存图标,更换图标后需要清理缓存
|
||||
Reference in New Issue
Block a user