There are two ways to create your Capacitor application. You can using the
@capacitor/create-app package to create a Capacitor application from scratch, or you can add Capacitor to your already existing web project.
Remember to make sure your environment is set up for the platforms you will be building for.
Creating a new Capacitor application
@capacitor/create-app package can be used to quickly create a Capacitor application. You can run the following command in an empty directory to scaffold a new Capacitor application.
npm init @capacitor/app
Adding Capacitor to your existing web application
Your project must have...
- A separate directory for built web assets such as
index.htmlfile at the root of your web assets directory
index.html file must have a
<head> tag in order to properly inject Capacitor. If you do not have a
<head> in your Html, Capacitor plugins will not work.
npm i @capacitor/core
npm i -D @capacitor/cli
Initialize your Capacitor config
Then, initialize Capacitor using the CLI questionnaire:
npx cap init
The CLI will ask you a few questions, starting with your app name, and the package ID you would like to use for your app.
Create your Android and iOS projects
After the Capacitor core runtime is installed, you can install the Android and iOS platforms.
npm i @capacitor/android @capacitor/ios
Once the platforms have been added to your
package.json, you can run the following commands to create your Android and iOS projects for your native application.
npx cap add android
npx cap add ios
Sync your web code to your native project
Once you've created your native projects, you can sync your web application to your native project by running the following command.
npx cap sync
npx cap sync will copy your built web application, by default
www, to your native project and install the native projects dependencies.
You can customize what folder is copied over by modifying the
webDir variable in your Capacitor Config file that is created during
npx cap init.
Where to go next
With your environment setup, and your project structure set up properly, you're ready to go! You can follow any of the links below if you need more specific documentation.