This guide provides instructions for contributing to this Capacitor plugin.
-
Fork and clone the repo.
-
Install the dependencies.
nvm use pnpm install
-
Install SwiftLint if you're on macOS.
brew install swiftlint
-
Watch for changes
pnpm watch
cd example
nvm use
pnpm install
pnpm start
Build the plugin web assets and generate plugin API documentation using @capacitor/docgen
.
It will compile the TypeScript code from src/
into ESM JavaScript in dist/esm/
. These files are used in apps with bundlers when your plugin is imported.
Then, Rollup will bundle the code into a single file at dist/plugin.js
. This file is used in apps without bundlers by including it as a script in index.html
.
Build and validate the web and native projects.
This is useful to run in CI to verify that the plugin builds for all platforms.
Check formatting and code quality, autoformat/autofix if possible.
This template is integrated with ESLint, Prettier, and SwiftLint. Using these tools is completely optional, but the Capacitor Community strives to have consistent code style and structure for easier cooperation.
Update the versions of the packages
pnpm changeset version
There is a prepublishOnly
hook in package.json
which prepares the plugin before publishing, so all you need to do is run:
pnpm changeset publish
Note: The
files
array inpackage.json
specifies which files get published. If you rename files/directories or add files elsewhere, you may need to update it.
Note: Sometimes a publish may partially succeed. Run the publish step again to have the remaining packages succeed (assuming that they do actually compile).