Skip to content

A simple and reliable way to test pnpm packages locally without publishing.

License

Notifications You must be signed in to change notification settings

souporserious/packlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 pack and storing it in a cache directory.
  • Add a locally published package to another project's dependencies by updating its package.json with 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 pack and stores it under ~/.config/packlink/<package-name>-<version>-<timestamp>.tgz.
  • Local Dependency Linking: Updates the consumer project's package.json to 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 publish

Watching 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

License

MIT © souporserious

About

A simple and reliable way to test pnpm packages locally without publishing.

Resources

License

Stars

Watchers

Forks

Packages

No packages published