When comparing Volo vs Yarn, the Slant community recommends Yarn for most people. In the question“What are the best front-end package managers?” Yarn is ranked 1st while Volo is ranked 6th. The most important reason people chose Yarn is:
One of the most important aspects of Yarn is determinism (predictability). The lock file ensures that the same dependencies will always be installed in the same way and order regardless of the machine for a given repository.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Automatically converts files to AMD for you
Volo is based around AMD, which is great for asynchronous loading, and if you try to add a non-AMD package, it will interactively ask you for its dependencies and exports.
Pro Provides command endpoints for task management
Volo also allows you to provide a volofile that lets you run various tasks. Volo provides a helper object for running cross platform command line commands, and also allows you to use binaries in node_modules
or create your own.
Pro Quickly bootstrap your project with templates
Volo has a create
command that can copy template projects from GitHub, so you can get set up quickly.
Pro Allows for extensible commands
Sometimes you might require some additional commands, other than the ones Volo provides; Volo has you covered in these cases as well. The package manager is extremely extensible at its core, and can be easily modified and extended.
Pro Loads packages directly from Github
If any project exists on Github, that means you can use it along with Volo in your frontend projects.
Pro The same results will be yielded every time yarn is run in a repository
One of the most important aspects of Yarn is determinism (predictability). The lock file ensures that the same dependencies will always be installed in the same way and order regardless of the machine for a given repository.
Pro Can tell you why a package was installed
yarn why <query>
can tell you why a package was installed and what other packages depend on it.
Pro Good network performance
Yarn efficiently queues up requests and avoids request waterfalls in order to maximize network utilization.
Pro Offline mode
If you've installed a package before, you can install it again without any internet connection.
Pro Flat Mode
Resolve mismatching versions of dependencies to a single version to avoid creating duplicates.
Pro Multiple registries
Install any package from either npm or Bower and keep your package workflow the same.
Pro Network resilience
A single request failing won't cause an install to fail. Requests are retried upon failure.
Pro Good documentation
It looks like it has good documentation.
Pro Security is put at the forefront
Even though it's still in its early stages of development, security is one of the core values on which Yarn is built. It uses checksums to verify the integrity of every package before executing its code. This also helps avoiding errors related to faulty caching or captive portals.
Further steps are also being taken to improve the security of Yarn which will be implemented in the future.
Pro Built by the community for the community
Even though it's backed by Facebook, Yarn is built as a community project first and foremost. It's completely open source and hosted on Github. It's released under a standard open source client and has its own GitHub organization and set up to work under the same governance model that other successful projects have used in the past, such as Rust and Ember.
All of this means that both existing and new contributors will always work together to improve the product and introduce new features while also keeping in mind suggestions coming from the community.
Pro Backed by Facebook and Google
Was created in a collaboration of Facebook with Exponent, Google and Tilde.
Cons
Con Does not store components in a registry
Volo installs components directly from urls and repositories, which makes it more susceptible to components being taken down, with fewer guarantees about their availability.
Con Takes up disk space
Yarn adds to your disk space usage since it stores dependencies locally.