@capgo/vite-capacitor
v0.1.0
Published
Vite plugin that keeps native Capacitor platform configs in sync with the dev server URL.
Maintainers
Readme
@capgo/vite-capacitor
Capacitor copies capacitor.config.json into each native platform. During development you usually want the dev server URL injected so the native apps talk to Vite. This Vite plugin keeps those files in sync with the dev server lifecycle: when the server starts the URL is written, when it stops the files are restored.
Install
npm install @capgo/vite-capacitor --save-devUsage
Add the plugin to vite.config.ts:
import { defineConfig } from "vite";
import viteCapacitor from "@capgo/vite-capacitor";
export default defineConfig({
plugins: [
viteCapacitor({
platforms: ["ios", "android"],
}),
],
});Start Vite as usual:
npm run devThe plugin will:
- detect the dev server URL once Vite is listening (respecting HTTPS and custom host/port),
- write the URL and
cleartextflag to the native copies atios/App/App/capacitor.config.jsonandandroid/app/src/main/assets/capacitor.config.json(if they exist), - skip untouched files that are missing or unchanged,
- restore the original files when Vite shuts down or the process exits.
Options
viteCapacitor({
root?: string; // defaults to Vite's resolved root
platforms?: Array<"ios" | "android">; // defaults to both
iosConfigPath?: string; // default: 'ios/App/App/capacitor.config.json'
androidConfigPath?: string; // default: 'android/app/src/main/assets/capacitor.config.json'
additionalConfigPaths?: string[]; // extra files to keep in sync
cleartext?: boolean; // defaults to true
logLevel?: "silent" | "info" | "debug";
urlOverride?: string | ((context) => string); // force a specific URL instead of auto-detecting
});The shared capacitor.config.json at the project root is never touched. Only files that already exist on disk are modified. If you customise Capacitor's output paths you can point the plugin at your copies via additionalConfigPaths.
Built with ❤️ by the Capgo team. Need help? Let’s talk.
