dler
extend your bun/pnpm/yarn/npm usage
𧬠dler ⒠extend your bun/pnpm/yarn/npm usage
sponsor β discord β github β npm
@reliverse/dler (formerly relidler;
/ΛdiΛ.lΙr/, dealer) is like nextjs, but for libraries and cli tools development. it is both a unified package manager for typescript/javascript projects and a flexible framework for creating, building, and publishing js/ts libraries to npm and jsr.dler is your package managerβs best friend β it extends bun, deno (π), pnpm, yarn, and npm with powerful and modern features.
at its core, dler is a flexible and fully automated bundler that also doubles as an npm/jsr publishing tool. beyond bundling, dler provides a rich codemod toolkit designed for modern typescript/javascript development.
dler-sdk serves also like a terminal component library, its like shadcn but for libraries and cli tools.
features
- drop-in
unjs/unbuildsupport with extended capabilities like publishing - automated publishing to npm and jsr with smart workflow orchestration
- reliable builds with robust typescript/javascript support and error handling
- smart versioning with semantic release and automatic version bumping
- zero-config setup β forget about
package.jsonmaintenance - built-in bun environment when used as a standalone cli app
- performance-optimized using fast build pipelines and aggressive caching
- 17 built-in commands β see dler commands for everything it can do
- path alias resolution β automatically rewrites tsconfig aliases to relative imports
- configurable by design β dedicated config files with sane defaults
- dual interface β use via cli or import as sdk for programmatic use
- clean dist output β strips internal logs and debug code automatically
- monorepo support with experimental
libsmode for multi-library setups - magic spells β plugin system for custom build logic and extensions
- codemod toolkit β powerful code transformation utilities out of the box
- full monorepo system with optimized cross-package dependency handling
- esp. designed for cli tool creators, project bootstrappers (like rse)
- perfect for anyone who wants their package manager to have sweet powers
getting started
before using dler, make sure you have git, node.js, and a supported package manager installed β bun is highly recommended for the best experience.
0. try the playground
π‘ tip curious to see dler in action before integrating it into your project? clone the repo and try e.g.
bun dler buildto build dler using... dler itself!
git clone https://github.com/reliverse/dler.git
cd dler
bun i
bun dler build # runs dler bun ts edition from source (cli entry: npm/dler.ts)1. install dler
it is recommended to install dler both globally and as a dev dependency:
- global install β
bun add -g @reliverse/dlerβ lets you use dler anywhere, like a system-level cli. - dev dependency β
bun add -D @reliverse/dlerβ pins the version per project, so all contributors use the same version.
instead of global install, you can alternatively install dler as a standalone binary: bunx @reliverse/dler
usage depends on how dler is installed:
dlerβ if installed globally (or as standalone binary)bun dlerβ if installed as a dev dependency
2. initialize dler config
first-time dler run initializes config, repeatable runs launches dler interactive menu.
bun dler # if installed locally
dler # if installed globallythis creates a starter config file: .config/dler.ts
-
it is recommended to tweak the config to match your project structure
-
example config: .config/dler.ts β
-
useful options:
buildPreExtensions: support additional file types like["ts", "js", "vue", "tsx", "jsx"]buildTemplatesDir: exclude a directory from being built; it will be copied as-is (e.g.src/foo/templates β dist-*/bin/foo/templates)
3. run and enjoy
bun dler [build|pub|--help] # if local
dler [build|pub|--help] # if globalπ‘ run
dlerfor an interactive menu, ordler --helpfor full command list.
4. upgrade your dev tools
keeping your tools fresh is always a good practice.
the command below upgrades not just dler, but also your local setup β including git, node.js, bun, npm, yarn, pnpm, and more.
just run:
bun dler upgradeβ οΈ donβt confuse this with
dler update, which upgrades your project dependencies and global packages, not your system tools. π note: bothupgradeandupdatewill update dler itself β globally and in yourdependenciesordevDependenciesif run inside a project with apackage.jsonβ depends on how dler is installed.
contributors
helper scripts
libs:pack: Creates two templates,cfgandsdk, based on dist-libs directory structure (using dler pack command).libs:unpack: Creates a project structure using all templates from thecfgandsdktemplates (using dler unpack command).libs:example: Sincelibs:unpack's serves as a dist-libs mock, thenlibs:examplehelps easily test dler's features likeresolveAllCrossLibs().
how to build
ts bun binaries
bun dler build binaryrust binaries
cargo build --release # release build is used for publishing
cargo build # debug build is used for development testingnotes
dlerustanddlergoare temporary names for the experimental rust and go binaries, they will be probably changed todlerin the future (or... maybe not π )<src | dist-npm | dist-jsr>/libs/<lib-name>/<files live here>===dist-libs/<lib-name>/<jsr | npm>/bin/<files live here>
todo
-
dist-*->dist/dist-* - implement stable
regularbuild and publish - implement stable
librarybuild and publish - achieve full drop-in replacement for
unbuild - support auto migration from
build.config.ts - support configuration via
.config/rse.{ts,jsonc}π€ - make config file fully optional with sensible defaults
- use
dler remdn(@reliverse/remdn) to generate npm/jsr specific readme and a singledocsdir for a whole project (only readmes will be published, docs are only stored in project's source cpde and can be deployed to user's website) - allow plugins to extend dler's
defineconfig(hooksBeforeBuildandhooksAfterBuildare now available, plugin's options can be passed directly to plugin's params, e.g.hooksBeforeBuild: [ async () => { await myCoolPlugin({ /* plugin's options */ }); } ],) - at the moment any bundler like
mkdistcan be called usingbun, but bun's own bundler is not yet fully supported - support all well-known package managers (currently only bun is fully supported)
-
dler <command> [...flags] [...args]usage should support bothbunanddlerown commands and flags - fully support deno and jsr
related
special thanks to the project that inspired @reliverse/dler:
support
- if dler saves you time and effort, please consider supporting its development: github sponsors;
- even a simple star on github shows your love. thank you!
license
π©· mit Β© 2025 blefnk nazar kornienko