packlink
v0.2.1
Published
A simple and reliable way to link and develop a package locally.
Readme
packlink
packlink is a minimal local package publishing tool for pnpm that allows you to:
- Publish a package locally by creating a tarball with
pnpm packand storing it in a cache directory. - Add a locally published package to another project's dependencies by updating its
package.jsonwith the local tarball reference.
This tool is useful for testing package changes locally without publishing to a remote registry. It's most useful within monorepos managed by pnpm workspaces that use local package versions like catalog: and workspace:*.
Features
- Local Publishing: Creates a tarball of your package using
pnpm packand stores it under~/.config/packlink/<package-name>-<version>-<timestamp>.tgz. - Local Dependency Linking: Updates the consumer project's
package.jsonto reference the local tarball. - Auto-Watching: Republish or readd packages automatically when changes are detected.
- Simple and Minimal: Focuses on local publishing without added complexity and zero dependencies.
Installation
You can run packlink directly via pnpm dlx:
pnpm dlx packlink <command>Or alternatively, install it globally:
pnpm install -g packlink
packlink <command>Commands
publish
Publishes a package locally by creating a tarball with pnpm pack and storing it in your local cache directory (~/.config/packlink/<package-name>-<version>-<timestamp>.tgz).
packlink publishWatching for package changes
Use --watch to watch for changes in your build directory (default is dist). Whenever a file in that directory changes, packlink will automatically republish. You can optionally specify a different directory to watch:
packlink publish --watch # Watch 'dist' by default
packlink publish --watch=lib # Watch the 'lib' directory instead of 'dist'add <package-name>
Adds a locally published package to another project's dependencies by updating its package.json with the local tarball reference:
packlink add <package-name>Watching for tarball updates
Use --watch to automatically update the dependency if a new tarball for the specified package is published. packlink will watch the cache directory (~/.config/packlink/) and re-run the add process when a new tarball is published:
packlink add <package-name> --watch