pnpm workspace for the Stackbox CMS packages.
| Package | Path | Role |
|---|---|---|
@stackbox/cms |
packages/cms |
CMS engine |
@stackbox/edit-mode-plugin |
packages/edit-mode-plugin |
In-iframe edit mode |
pnpm install
pnpm build
pnpm typecheck
pnpm testRun one package with --filter:
pnpm --filter @stackbox/cms test
pnpm --filter @stackbox/edit-mode-plugin testAlways publish with pnpm, never npm publish.
Packages in this workspace use workspace: protocol ranges (for example @stackbox/edit-mode-plugin peers on @stackbox/cms). pnpm rewrites those to semver in the published manifest; npm does not. Publishing with npm publish can ship invalid peers like "@stackbox/cms": "workspace:^", which break installs for consumers.
-
Bump each package version you intend to release (
packages/*/package.json). -
Build and test from the repo root:
pnpm install pnpm build pnpm typecheck pnpm test -
Publish every public package with pnpm (root is
privateand is skipped):pnpm publish
That runs
pnpm -r publish --access publicso workspace deps are rewritten to semver.Or one package:
pnpm --filter @stackbox/cms publish --access public pnpm --filter @stackbox/edit-mode-plugin publish --access public
-
If the registry asks for 2FA, open the printed browser URL, approve, then re-run with
--otp <token>if the CLI did not complete automatically. -
After publish, npm may take several minutes to finish malware-scan staging before the version is installable. A
409 Cannot publish over previously staged versionmeans that version is already staged — wait; do not bump just to retry. -
Confirm the published manifest rewrote
workspace:ranges:npm view @stackbox/edit-mode-plugin@<version> peerDependencies
You should see a semver range (for example
"@stackbox/cms": "^0.1.2"), neverworkspace:.
- Run
npm publish(ornpm publish -w …) from a package directory. - Skip the post-publish
npm view … peerDependenciescheck when a package hasworkspace:deps or peers.
BSD-3-Clause