0
Fork 0
mirror of https://github.com/penpot/penpot-plugins.git synced 2025-01-08 07:50:44 -05:00
penpot-plugins/docs/publish-package.md
2024-04-08 11:44:59 +02:00

85 lines
2.6 KiB
Markdown

# Publishing Packages
## Introduction
This guide details the process of publishing `plugin-types` and `plugins-styles` packages, which are essential for plugin development. To facilitate testing and distribution, we leverage npm for publishing and Verdaccio for setting up a local registry. Below is a walkthrough for publishing these packages, setting up a local registry, and managing releases.
## Setting Up a Local Registry with Verdaccio
Setting up a local registry is for testing plugins in isolation from the monorepo. We utilize Verdaccio, a npm proxy registry, for this purpose.
**Launch the Registry**: Initiate the Verdaccio registry by executing the command:
```shell
npm run registry
```
## Publishing Libraries
Publishing packages allows you to distribute your libraries to other developers and environments. Follow the steps below for both automated and manual publishing processes.
### Automated Publishing:
To publish the libraries automatically, use the command:
```shell
npm run publish -- --version 0.1.0 --tag 0.1.0 --registry http://localhost:4873
```
### Manual Publishing:
For manual publication, navigate to the library directory and execute:
```shell
npm publish --registry http://localhost:4873
```
### Independent Publishing:
To publish libraries independently, specify the package name along with version and tag:
```shell
npx nx publish plugin-types -- --version 0.1.0 --tag 0.1.0
npx nx publish plugins-styles -- --version 0.1.0 --tag 0.1.0
```
### Installing Libraries:
When installing the library, ensure to specify the registry:
```shell
npm i --registry http://localhost:4873
```
**Note**: For direct npm publication, omit the `--registry` flag.
## Managing Releases
### Generating a Release:
For regular releases, execute:
```shell
npx nx release
```
For the initial release, use the `--first-release` flag:
```shell
npx nx release --first-release
```
Refer to the [Nx Release Documentation](https://nx.dev/recipes/nx-release/publish-in-ci-cd) for detailed information.
## Important Reminders
Ensure to update the [penpot-plugin-starter-template](https://github.com/penpot/penpot-plugin-starter-template) with every release to provide developers with the latest configuration and features.
## Relevant Files and Scripts
- **Verdaccio Configuration**: `./project.json`
- **CSS Build Script**: `./tools/scripts/build-css.mjs`
- **Types Build Script**: `./tools/scripts/build-types.mjs`
- **Publish Script**: `./tools/scripts/publish.mjs`
This improved documentation aims to streamline the package publishing process, making it more accessible and understandable for developers.