Back to Activepieces

External Libraries

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

0.89.01.2 KB
Original Source

The Activepieces repository is structured as a monorepo, employing Turbo 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.