Dart pub vs Yarn
Dart pub
dart.devYarn
yarnpkg.comSide by side
| Figure | Dart pub | Yarn |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · Package Managers | 7.8 (#46) | 8.7 (#10) |
| Dependency resolution | Pub manages dependency versions to find versions compatible with each other and with the Dart SDK version. | Yes |
| Free plan | Yes | Yes |
| Lockfile support | Yes | Yes |
| Offline installation | Yes | Yes |
| Package formats | Dart packages | npm packages; tarballs; local,Git,link,patch,portal,and workspace references |
| Private registry auth | Yes | Yes |
| Purpose | Pub is Dart’s package manager for managing package dependencies. | Yarn is a package manager that also describes itself as a project manager. |
| Supported platforms | Windows,Linux,macOS | Linux,macOS,Windows |
| Workspace support | Yes | Yes |
Plans
In their own words
Dart pub
Dart pub is Dart’s package manager for finding and managing shared libraries and tools. It resolves dependency versions compatible with one another and the installed Dart SDK, and records selected versions in a lockfile so application teams can keep dependency versions consistent. Packages may come from pub.dev, other hosted repositories, Git repositories, local paths, or supported SDKs. Developers can use pub through the dart or Flutter command-line tools, and most Dart-savvy IDEs support package workflows. The `dart pub publish` command uploads packages to pub.dev. Before publishing, pub checks for possible secret leaks using limited patterns and may warn or refuse publication; packages published to pub.dev cannot have Git or local path dependencies in their pubspec. Security advisories draw on the GitHub Advisory Database for Dart and Flutter packages. Pub can often resolve dependencies offline from its shared cache. It supports Windows, Linux, and macOS, and is free and open source.
Yarn
Yarn is a package manager and project manager for JavaScript projects, serving uses from simple projects to industry monorepos. It resolves dependencies, maintains lockfiles and provides workspaces that install and link packages within a project. Modern Yarn uses Plug'n'Play by default, generating a Node.js loader file instead of a typical node_modules folder; users can choose node_modules or pnpm-style symlink installs instead. Yarn caches installed packages and shares them among projects on the same machine. Its offline mirror and zero-installs workflow can keep cached packages in a repository and reduce reliance on the npm registry. Plugins can extend resolvers, fetchers, linkers, commands and lifecycle hooks. Generated editor SDKs and settings support VSCode, Vim, Emacs and Neovim. Yarn runs on Linux, macOS and Windows and is free, with no paid plans or usage limits stated. Its documentation notes that React Native and Expo require typical node_modules installs. Yarn does not run audits during installation by default; users can run yarn npm audit separately.