|
1 | 1 | # vite-capacitor |
2 | 2 |
|
3 | | -[](https://www.npmjs.com/package/vite-capacitor) |
4 | | -[](./LICENSE) |
| 3 | +**vite-capacitor** 是一个零配置的 Capacitor 增强工具,它能自动将你的 Vite 运行环境(开发服务器 IP 或构建目录)同步到原生工程中。 |
5 | 4 |
|
6 | | -🚀 **自动同步 Vite 开发服务器环境到 Capacitor 配置。** |
| 5 | +## ✨ 为什么使用它? |
7 | 6 |
|
8 | | -在进行 Capacitor 真机调试时,手动查找本机局域网 IP 并修改 `server.url` 非常繁琐。本插件通过自动化这一过程,实现了“启动即调试”的移动端开发体验。 |
| 7 | +Capacitor 开发需要手动修改 `capacitor.config.ts` 中的 `server.url` 来进行真机调试。**vite-capacitor** 将这一过程自动化: |
9 | 8 |
|
10 | | ---- |
11 | | - |
12 | | -## 📦 安装 |
13 | | - |
14 | | -```bash |
15 | | -# 使用 pnpm |
16 | | -pnpm add vite-capacitor -D |
17 | | - |
18 | | -# 使用 npm |
19 | | -npm install vite-capacitor -D |
20 | | -``` |
| 9 | +* **开发模式**:自动获取本机局域网 IP,配置 HMR 地址。 |
| 10 | +* **生产模式**:自动指向构建后的 `dist` 目录。 |
| 11 | +* **零干扰**:无需在 Vite 中注册插件,通过命令行直接驱动。 |
21 | 12 |
|
22 | 13 | --- |
23 | 14 |
|
24 | | -## 🛠️ 快速配置 |
| 15 | +## 🚀 快速上手 |
25 | 16 |
|
26 | | -### 1. 配置 Vite 插件 |
| 17 | +### 1. 安装 |
27 | 18 |
|
28 | | -在 `vite.config.ts` 中引入并使用插件。 |
| 19 | +```bash |
| 20 | +npm install vite-capacitor -D |
29 | 21 |
|
30 | | -```typescript |
31 | | -// vite.config.ts |
32 | | -import { defineConfig } from 'vite' |
33 | | -import { viteCapacitor } from 'vite-capacitor' |
34 | | - |
35 | | -export default defineConfig({ |
36 | | - plugins: [ |
37 | | - viteCapacitor() |
38 | | - ], |
39 | | - // 插件扩展了类型,你可以在这里定义 Capacitor 基础属性 |
40 | | - capacitor: { |
41 | | - appId: 'com.example.app', |
42 | | - appName: 'MyCapApp', |
43 | | - }, |
44 | | - server: { |
45 | | - host: true, // 必须开启 host |
46 | | - } |
47 | | -}) |
48 | 22 | ``` |
49 | 23 |
|
50 | | -### 2. Capacitor 配置 |
| 24 | +### 2. 配置 Capacitor |
51 | 25 |
|
52 | | -修改项目根目录的 `capacitor.config.ts`,调用 `loadConfig` 来动态加载生成的配置。 |
| 26 | +在 `capacitor.config.ts` 中引入 `loadConfig`。它会根据执行环境自动注入配置。 |
53 | 27 |
|
54 | 28 | ```typescript |
55 | 29 | // capacitor.config.ts |
56 | 30 | import { loadConfig } from 'vite-capacitor' |
57 | 31 |
|
58 | | -export default loadConfig() |
| 32 | +export default loadConfig(), |
| 33 | + |
59 | 34 | ``` |
60 | 35 |
|
61 | | -### 3. 更新 .gitignore |
| 36 | +### 3. 使用 `npx vcap sync` 替代 `npx cap sync` |
62 | 37 |
|
63 | | -插件生成的临时配置文件建议不要提交到仓库。 |
| 38 | +不再直接使用原生命令,改用 `vcap`: |
64 | 39 |
|
65 | | -```ignore |
66 | | -# .gitignore |
67 | | -.capacitor/ |
| 40 | +```bash |
| 41 | +# 真机热更新调试 (Development) |
| 42 | +# 自动探测 IP -> 生成配置 -> 执行 cap sync |
| 43 | +npx vcap sync android |
68 | 44 |
|
69 | | -``` |
| 45 | +# 准备发布包 (Production) |
| 46 | +# 自动设置 webDir: dist -> 执行 cap sync |
| 47 | +npx vcap sync android --build |
70 | 48 |
|
71 | | -## 📖 使用案例 (Usage Example) |
| 49 | +``` |
72 | 50 |
|
73 | | -### 场景 A:真机实时调试 (Development) |
| 51 | +--- |
74 | 52 |
|
75 | | -1. **执行启动**: 运行 `npm run dev`。 |
76 | | -* 插件检测到你的电脑 IP 是 `192.168.1.50`,Vite 端口是 `5173`。 |
77 | | -* 插件自动在 `.capacitor/config.dev.json` 中生成包含 `http://192.168.1.50:5173` 的配置。 |
| 53 | +## 🛠️ CLI 命令详解 |
78 | 54 |
|
79 | | -2. **运行 App**: 运行 `npx cap run ios` 或 `npx cap run android`。 |
80 | | -* **效果**: 手机 App 启动后会自动连接到你电脑上的 Vite 服务。当你修改代码并保存时,手机屏幕会**立即同步更新 (HMR)**。 |
| 55 | +`vcap sync [platform] [options]` |
81 | 56 |
|
82 | | -### 场景 B:构建发布 (Production) |
| 57 | +| 选项 | 描述 | 默认值 | |
| 58 | +| --- | --- | --- | |
| 59 | +| `platform` | 目标平台: `android` 或 `ios` | - | |
| 60 | +| `--build` | **重要**:指定为生产模式。不加则默认为开发模式。 | `false` | |
| 61 | +| `--deployment` | (iOS) `pod install` 使用 `--deployment`。 | `false` | |
| 62 | +| `--inline` | (Android) 将 Source Maps 内联到 Webview 中。 | `false` | |
83 | 63 |
|
84 | | -1. **执行构建**: 运行 `npm run build`。 |
85 | | -* 插件识别到 Vite 的构建输出目录为 `dist`。 |
86 | | -* 插件自动在 `.capacitor/config.prod.json` 中将 `webDir` 设置为 `dist`。 |
| 64 | +## 📄 建议配置 |
87 | 65 |
|
88 | | -2. **同步资源**: 运行 `npx cap copy`。 |
89 | | -* **效果**: Capacitor 会自动将编译好的 `dist` 静态资源拷贝到原生工程中,确保 App 在离线状态下也能正常运行。 |
| 66 | +将 `.capacitor` 目录加入忽略列表,因为它包含的是本地环境相关的动态配置: |
90 | 67 |
|
91 | | -## 📂 项目结构 |
| 68 | +```ignore |
| 69 | +// .gitignore |
| 70 | +.capacitor/ |
92 | 71 |
|
93 | | -```text |
94 | | -. |
95 | | -├── .capacitor/ # 插件生成的临时配置目录 |
96 | | -│ ├── config.dev.json # 开发环境配置 (含动态 IP URL) |
97 | | -│ └── config.prod.json # 生产环境配置 (含 webDir) |
98 | | -├── vite.config.ts # 配置 Capacitor 基础属性 |
99 | | -└── capacitor.config.ts # 动态消费生成的配置 |
| 72 | +``` |
0 commit comments