RequireJS vs Yarn: What are the differences?
RequireJS and Yarn can be categorized as "Front End Package Manager" tools.
"Open source" is the primary reason why developers consider RequireJS over the competitors, whereas "Incredibly fast" was stated as the key factor in picking Yarn.
RequireJS and Yarn are both open source tools. It seems that Yarn with 36.1K GitHub stars and 2.21K forks on GitHub has more adoption than RequireJS with 12.2K GitHub stars and 2.3K GitHub forks.
Intuit, StackShare, and GigSalad, LLC are some of the popular companies that use Yarn, whereas RequireJS is used by Uber Technologies, Coursera, and Asana. Yarn has a broader approval, being mentioned in 609 company stacks & 507 developers stacks; compared to RequireJS, which is listed in 914 company stacks and 184 developer stacks.
What is RequireJS?
What is Yarn?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using RequireJS?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
But one also deals with broken third-party dependencies uploaded to npm way too often (even ignoring the malicious packages issues that have gotten a lot of press of late). And one mostly has to use nvm in order to pin a specific version of node itself in a maintainable way, and nvm is a mess.
We use Yarn because at the time we decided to adopt it, npm had some missing features and issues. We like the speed and determinism provided by Yarn. We could probably use npm at this point, but we have no real reason to switch from Yarn. If you have a convincing argument to switch from npm to Yarn please leave a comment on this decision!
So when starting a new project you generally have your go to tools to get your site up and running locally, and some scripts to build out a production version of your site. Create React App is great for that, however for my projects I feel as though there is to much bloat in Create React App and if I use it, then I'm tied to React, which I love but if I want to switch it up to Vue or something I want that flexibility.
So to start everything up and running I clone my personal Webpack boilerplate - This is still in Webpack 3, and does need some updating but gets the job done for now. So given the name of the repo you may have guessed that yes I am using Webpack as my bundler I use Webpack because it is so powerful, and even though it has a steep learning curve once you get it, its amazing.
The next thing I do is make sure my machine has Node.js configured and the right version installed then run Yarn. I decided to use Yarn because when I was building out this project npm had some shortcomings such as no
.lock file. I could probably move from Yarn to npm but I don't really see any point really.
I use Babel to transpile all of my #ES6 to #ES5 so the browser can read it, I love Babel and to be honest haven't looked up any other transpilers because Babel is amazing.
Finally when developing I have Prettier setup to make sure all my code is clean and uniform across all my JS files, and ESLint to make sure I catch any errors or code that could be optimized.
I'm really happy with this stack for my local env setup, and I'll probably stick with it for a while.
I am not sure about the performance of the latest version of npm, whether it is different from my understanding of it below. Because I use npm very rarely when I had the following knowledge.
I use Yarn because, first, yarn is the first tool to lock the version. Second, although npm also supports the lock version, when you use npm to lock the version, and then use package-lock.json on other systems, package-lock.json Will be modified. You understand what I mean, when you deploy projects based on Git...
I use npm because I also mainly use React and TypeScript. Since several typings (from DefinitelyTyped) depend on the React typings, Yarn tends to mess up which leads to duplicate libraries present (different versions of the same type definition), which hinders the Typescript compiler. Npm always resolves to a single version per transitive dependency. At least that's my experience with both.
I think our #Frontend stack is pretty standard – but we have taken some deviations from a typical modern stack:
Yarn instead of npm. When yarn debuted, we never looked back. Now npm has pretty much caught up with speed and lockfiles, but yarn gives me confidence that my dependency installs are deterministic. Really interested in the plug-n-play (PnP) feature that removes the need for a node_modules folder, but haven't implemented this yet.
From a StackShare Community member: “I’m a freelance web developer (I mostly use Node.js) and for future projects I’m debating between npm or Yarn as my default package manager. I’m a minimalist so I hate installing software if I don’t need to- in this case that would be Yarn. For those who made the switch from npm to Yarn, what benefits have you noticed? For those who stuck with npm, are you happy you with it?"
Yarn is a wonderful alternative to the built-in npm command-line interface. Dependency installation is crazy fast, because it caches every package and performs operations in parallel.
yarn instead of
yarn work great.
I don’t see any overwhelming reason to choose one over another.
I just like yarn, that’s it.
Used Require.js to make the application modular. It provides better dependency management with asynchronous loading of scripts.
No real definitive reason, I find it to be the most natural way to import libraries and code in nodejs (prior to ES6 / import).
The RequireJS package manager is used by various web applications and services to manage dependencies on 3rd party libraries.
We use it in every JS project. Blazing fast package manager for node.js. Easy to use in Docker containers
Used in Coolfront Mobile and "Charlie" (flat rate search engine) as packaging mechanism.
Very nice way to structure a project, as long as you know it will not be a hybrid app.