Aller au contenu

Monorepo

pubm traite le monorepo comme un cas principal. Il peut relier JavaScript, Rust et Deno dans le même dépôt.

  • pnpm-workspace.yaml
  • Cargo.toml avec [workspace]
  • deno.json ou deno.jsonc avec workspace
  • package.json avec workspaces
  • bunfig.toml avec package.json workspaces

Utilisez une config explicite quand :

  • seuls certains packages doivent etre publies
  • JS et Rust cohabitent
  • vous devez surcharger les registres inferes ou ajouter des registres prives
Fenêtre de terminal
pubm init --changesets
pubm changesets add
pubm

Dans un monorepo, le plus important est le plan de release calcule a partir des changesets, des groupes fixed ou linked et de l’ordre des dependances.

En mode independent, chaque package reçoit normalement son propre tag git et un brouillon de GitHub Release. Utilisez excludeRelease pour versionner et publier certains packages sans creer de tags ni de releases.

export default defineConfig({
versioning: "independent",
excludeRelease: ["packages/cli/platforms/*"],
packages: [
{ path: "packages/core" },
{ path: "packages/cli" },
{ path: "packages/cli/platforms/*" },
],
});