An age old debate about package managers
Each have their pros & their cons
I personally prefer Yarn - I think it's general installation of packages is quicker and I REALLY appreciate its peer dependency resolution it saves LOADS of time.
So - what is your go-to package manager and why?
Top comments (80)
pnpm really fast installation ( in one monorepo I have 2,5 min vs 20 min in npm) and stricter in resolving dependencies. Also saves a lot of disk space if you have multiple projects.
I also use and enjoy pnpm. It's great for strictly resolving dependencies across the board, instead of recreating the wheel.
Is it really that good would you ever go back to npm or yarn? Or do you still use them sometimes?
If I can choose I always choose pnpm. But try them all and decided for your self :)
PNPM all the way, unless for some reason I have to use something else for some reason.
Right now, PNPM is my only globally installed dependency. Everything else can be explicitly listed in each project without having to be reinstalled for each project, which has saved me from some CI headaches I ran into with NPM previously. (Like forgetting to list typescript, and having it work locally because of a global install but NOT work on CI because there are no global installs)
I know I sound like a fanboi, but its my happy place.
I heard NextJS has dependence graph problem.🤔 it good and fast but not fully support some old project🥲
NPM, because i'm lazy and it's the default.
this
I usually resolve the dependencies manually and download zips myself 🤣
Oh dear. I feel sorry for you. That must be a nightmare!
I have a dial up connection which makes it even worse!
A true old school hardcore developer! 😂
I joke but I can remember doing this! So many zip files, I can remember also when .min.js was a new choice!
Adam, I know and I can definitely relate, which makes it even funnier 😆.
I hope people don't feel bad for us being old 😂
Neat, sounds very manual :p
I can think of using this for c++ or so, but im curious.
It's only a joke, this is what they both do.
CPP has some package managers already I think, Conan or something, but there is no standard "package" last time I was working in CPP anyway
I see :p
and good to know as well, I do plan to start looking into vsti development (synths and such for DAWs) which mainly uses c++
ni-er?
github.com/antfu/ni
I've so many projects with yarn, npm and pnpm that I always forget which project uses which. It is great to just run
nr dev
to turn on the dev server and start coding right awayYay!! I’m agree with you
Never bet against the platform, I was full into yarn but since npm has now all yarn features even the commands are same there is no need for yarn anymore all my projects just feel super clean now working directly with npm. If you still on yarn I recommend try going back to npm it is awesom.
NPM, because it has more community support. I'd rather have more compatibility between my tools rather than save 10 minutes on an installation I only do a few times a year.
Between NPM and Yarn I prefer Yarn for having more intuitive commands in my opinion. Nowadays I don't think there are any big differences in performance between the two anymore, I think yarn should still win because of the cache. Because if it's a clean install, they're very close.
I've been using pnpm lately and I've found it super interesting and I've been loving it.
npm primarily because yarn increases our app build times by 50% causing them to time out. We have a complex NextJS app that with npm takes ~6.5 minutes to build on a 32GB machine. yarn pushes that past our 10 minute sanity limit.
One thing to note is yarn 3 has zipped and thus trackable dependency cache, if that were something that would work for you.
No more network connection issues making your app unbuildable, or package maintainers taking their packages away leaving you with a broken app.
That sounds cool, just not sure how that would work in an automated build environment within a Docker container. Where does the cache get stored?
git add .yarn/
git commit
You can just track it in git along with your source files.
Cool! I'll check it out. Thanks!
npm is the one I use. I just never got around to trying out yarn or pnpm, but I’ve used yarn once to compile a repo that was based on it. But, I use mask to run the tasks in npm and external moving things around or setting up the compile with other command line commands.
NPM Has managed to catch up with Yarn in recent years with regards to feature set, and we don't really suffer from the "slow installation" problem Yarn claims to solve.
Sufficed to say we switched back to NPM
I feel like I'm going to be the outlier here but I just kinda use.... whatever? My most recent personal projects have been using NPM (but mostly since the template I originally used was NPM) but my work uses Yarn. When I'm using Create React App it defaults to Yarn since I have both on my system so I just kind of go with it. I just kind of go with the flow I guess?
I wanted to switch to Yarn v2, but its hoisting wasn’t supported by bundlers like Webpack and the Plug‘n‘Play zero install wasn’t supported Typescript.
I stayed with NPM for now, but it seems that I should give PNMP a try.
I always prefer npm over yarn. Don't know why but I find npm quite optimized and yes maybe for some people yarn is faster. But when I look over to my experience they are quite same so don't find any edge or reason to use yarn when we have npm
Last time I used Yarn berry (Which was a couple weeks ago) I couldn't get it to install private packages from GitHub packages because it doesn't use your .npmrc like PNPM or NPM. Unfortunately for my case it wasn't a drop in replacement for NPM. So I use NPM for now. I like the interactive upgrade feature of Yarn and the node_module structure that PNPM has.