mirror of
https://github.com/penpot/penpot-plugins.git
synced 2025-01-08 07:50:44 -05:00
85 lines
2.6 KiB
Markdown
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.
|