Package managers are popularly used today to manage packages used by applications. From easy and one-time installation per project to straightforward updating, and uninstallation of packages, these package managers make application development easier.
Yarn is a fast, reliable, and secure package manager, which is very popular nowadays. Yarn is also known for its powerful caching mechanism, making it easy to install packages that were previously installed on a device.
With Yarn, you can easily manage your applications' dependencies in terms of installation and uninstallation. Also, yarn upgrades for dependencies are seamless and can be performed automatically.
Yarn uses 'package.json' to manage directly installed dependencies.
Yarn is very reliable: packages installed on one device are saved with their versions in a lockfile. This lockfile ensures that the same application will work seamlessly on another device.
Bower uses a 'bower.json' manifest file to keep track of all dependencies installed. It also provides hooks that facilitate the process of managing dependencies.
Aside from installing, updating, and uninstalling packages, npm also allows developers to easily publish their own packages. These packages can be public or private. Private packages are for cases like restricting package use to your team.
It is also noteworthy that npm uses Nested Dependency Graphs instead of Flat Dependency Graphs, which means if Dependency A and Dependency B depend on Dependency C, A and B will download their own versions of C.
RingoJS is a package manager that installs packages from the Ringo Package Registry.
It has two ways of installing packages.
There's an 'rp' utility and a 'ringo-admin' utility - the former is better with cooler features. The built-in utility is 'ringo-admin' which can be used to install 'rp'. According to their documentation, 'rp' is better than 'ringo-admin' because it downloads dependencies in package descriptors and can also download any dependency in the online registry.
Ringo also uses 'packages' to store the dependencies just like Yarn and npm use 'node_modules'.
For templates of new projects, you can use a zipball from an existing GitHub repo, a URL, or a local file path. Volo uses GitHub repositories as it's registry.
Volo also has a nice search feature such that when you want to install packages, you can use keywords and it tries to match those keywords to real packages.