Skip to content

chore(core): prepare @zipkit/core for npm publication#53

Merged
ronload merged 1 commit into
mainfrom
chore/core-publish-ready
Jun 24, 2026
Merged

chore(core): prepare @zipkit/core for npm publication#53
ronload merged 1 commit into
mainfrom
chore/core-publish-ready

Conversation

@ronload

@ronload ronload commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Why

PR #52 turned @zipkit/core into a built, ESM-only package consumed by apps/web. The build pipeline is solid, but the package still lacked the metadata and package-local docs npm needs to render a proper page and to publish under a scoped name. This change closes that gap so the package is one step (lifting private) away from a clean first publish, without publishing anything yet.

What

  • Version 0.0.0 -> 0.1.0 (initial, intentionally pre-1.0 / unstable API).
  • Metadata: add description, keywords, license, author, repository (with directory: packages/core for the monorepo), homepage, bugs.
  • sideEffects: false so bundlers can tree-shake (resolves the only publint suggestion). The package is pure functions.
  • publishConfig.access: public so the scoped package publishes publicly once private is lifted.
  • Package-local README.md (zh-TW API docs) and LICENSE so the npm page renders. npm only bundles README/LICENSE from the package root, not the repo root.

private: true is intentionally kept as the final safety gate.

Verification

  • publint: All good.
  • attw --pack: green for node10 / node16-ESM / bundler; the single warning is the expected ESM-only "CJS must use dynamic import" note.
  • pnpm pack --dry-run: tarball now contains dist/, README.md, LICENSE, package.json.
  • Tests 29/29, Prettier clean.

Still required before an actual publish (out of scope here)

  • Remove private: true.
  • Create the @zipkit npm org (own the scope) and set up auth (npm login / CI NPM_TOKEN).
  • Optional: Changesets + a release workflow for automated versioning/publishing.

Prepare @zipkit/core for npm publication without actually publishing.

- Set version to 0.1.0 (initial unstable release)
- Add description, keywords, license, author, repository (with
  directory), homepage, and bugs fields
- Add "sideEffects": false for downstream tree-shaking (publint)
- Add publishConfig.access: public so the scoped package publishes
  publicly once private is lifted
- Add package-local README.md and LICENSE so the npm page renders

Keep "private": true as the final safety gate; flipping it, owning the
@zipkit npm org, and auth/token setup remain before an actual publish.

publint: clean. attw: ESM-only (expected CJS dynamic-import note).
@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zipkit Ready Ready Preview, Comment Jun 24, 2026 9:46am

@ronload ronload merged commit 5a3b1ac into main Jun 24, 2026
4 checks passed
@ronload ronload deleted the chore/core-publish-ready branch June 24, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant