Files
flipper/docs/tutorial/js-publishing.mdx
Kevin Strider 99fb7875cd js-publishing.mdx (Creating Plugins - Publishing)
Summary: Change to Sidebar label and Title

Reviewed By: nikoant

Differential Revision: D36475587

fbshipit-source-id: 425deb13d67965c433773563718365403097cb37
2022-05-18 10:25:16 -07:00

69 lines
2.3 KiB
Plaintext

---
id: js-publishing
title: Publishing Your Plugin
sidebar_label: Publishing Your Plugin
---
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>