When comparing GNU Make vs Yarn, the Slant community recommends Yarn for most people. In the question“What are the best Node.js build systems / task runners?” Yarn is ranked 4th while GNU Make is ranked 8th. 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.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Uses the full power of the UNIX shell
Make takes advantage of the powerful UNIX shell, using it at it's full potential. STDIN and STDOUT are especially useful because of their versatility.
Pro No need for wrapper modules
Other build tools need wrapper modules to do certain tasks. The biggest disadvantage of these wrapper modules is that they bind you to a version of that tool. With Make you don't have that problem, there's no need for wrappers and no tools to bind you to a version, you can use any version of Make that you want.
Pro Works with more than just node.js
Since it's written in C and can be found in all UNIX-based systems it can be used on platforms other than node.js.
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 Doesn't run on Windows by default
Make requires Cygwin/msys2/MinGW to run on Windows.
Con Takes up disk space
Yarn adds to your disk space usage since it stores dependencies locally.