Back to Activepieces

External Libraries

docs/build-pieces/piece-reference/external-libraries.mdx

0.82.11.2 KB
Original Source

The Activepieces repository is structured as a monorepo, employing Nx as its build tool.

To keep our main package.json as light as possible, we keep libraries that are only used for a piece in the piece package.json . This means when adding a new library you should navigate to the piece folder and install the library with our package manager bun

bash
cd packages/pieces/<piece-path> 
bun install --save <library-name>
  • Import the library into your piece.

Guidelines:

  • Make sure you are using well-maintained libraries.
  • Ensure that the library size is not too large to avoid bloating the bundle size; this will make the piece load faster in the sandbox.

Dependency Pinning

When pieces are built for publishing, all dependency versions — including transitive dependencies (dependencies of your dependencies) — are automatically pinned to the exact versions resolved in the monorepo's bun.lock file.

This means:

  • You don't need to worry about manually pinning transitive dependency versions.
  • The published piece will always install the same dependency tree that was tested during development.
  • This protects against supply chain attacks where a compromised transitive dependency could be silently pulled in at install time.