Files
flipper/docs/tutorial/js-publishing.mdx
Kevin Strider 76d4f01934 js-publishing.mdx (Creating Plugins - Publishing)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: nikoant

Differential Revision: D36444128

fbshipit-source-id: 1689d36d7ad0b101ea4793a1ac51ba619291b668
2022-05-17 10:07:32 -07:00

69 lines
2.3 KiB
Plaintext

---
id: js-publishing
title: Publishing your Plugin
sidebar_label: Publishing
---
import useBaseUrl from '@docusaurus/useBaseUrl';
import Link from '@docusaurus/Link';
<FbInternalOnly>
The process of releasing plugins is largely automated at Meta. For details, see the <Link to={useBaseUrl('/docs/extending/fb/desktop-plugin-releases')}>Desktop Plugin Releases</Link> page.
</FbInternalOnly>
<OssOnly>
Once you're happy with your plugin and want the world to see it, you can publish it to npm.
Before publishing, ensure that your plugin complies with the following rules:
* The package name should start with 'flipper-plugin-'. This makes it easier to see the purpose of the package.
* The package must include the keyword 'flipper-plugin'.
* Source code of the plugin must be bundled by 'flipper-pkg' tool.
A valid example `package.json` could look like the following:
```json
{
"$schema": "https://fbflipper.com/schemas/plugin-package/v2.json",
"name": "flipper-plugin-sea-mammals",
"id": "sea-mammals",
"version": "2.0.0",
"main": "dist/bundle.js",
"flipperBundlerEntry": "src/index.tsx",
"license": "MIT",
"keywords": ["flipper-plugin"],
"icon": "apps",
"title": "Sea Mammals",
"category": "Example Plugin",
"scripts": {
"prepack": "flipper-pkg lint && flipper-pkg bundle"
},
"dependencies": {
"flipper": "latest"
},
"devDependencies": {
"flipper-pkg": "latest"
}
}
```
When you have confirmed that your `package.json` is correct, run `yarn publish` or `npm publish` and follow the instructions.
## Installing Plugins
Once your plugin is published you can find it, alongside other available Flipper plugins, by clicking on 'Manage Plugins...' in the bottom of the left sidebar and selecting the 'Install Plugins' tab.
It may take a few moments for the search index to update and your plugin to appear.
<img alt="Install plugins" src={useBaseUrl("img/install-plugins.png")} />
## Native Distribution
Depending on whether the client-side part of your plugin targets Android, iOS or React Native, it's recommended you use the standard package distribution mechanism for the platform.
This may be Maven Central, JCenter or GitHub Packages for Android, CocoaPods for iOS and npm or GitHub Packages for React Native.
Make sure to leave setup instructions in the README of your npm package.
</OssOnly>