Popular Javascript package managers compared:.

Popular Javascript package managers compared:

(npm vs yarn vs pnpm)

npm, yarn, and pnpm are the popular package
managers from the Javascript world.

There are new entrants in the market (bun and
deno), we will discuss them later.

Why is there a need for a package manager?

A packager manager is a tool that automates publishing,
installing, upgrading, and removing software programs.

Now, the next question.

Which one should you choose and why?

This question needs a deeper understanding and
comparison between the available options.

Let’s understand them one by one.

1- npm (Node Package Manager)

npm is the default package manager of Node.js.
As it is the default option, it has the
biggest community.

It does comes with its disadvantages.

Sequential installation is one of the main disadvantages
of npm. It increases the package install time.

npm duplicates packages for every project affecting
disk size.

npm audit is broken by default. There is no
graceful way to fix or update vulnerabilities.

2- yarn (created by Meta)
yarn solved the download problem with parallel
downloads.

It also came with an out-of-the-box offline mode.

Yarn came up with a new approach to manage
packages.

Instead of duplicating package code for every project,
it hoists the common packages further up the tree.

However, hoisting comes with its challenges.

You might end up importing something from a subpackage
which you did not install.

Another downside to hoisting is that it uses semver
(semantic versioning).

So if a package does not use semver consistently,
You might end up with problems that you
did not cause.

To solve these, yarn added Plug’n’Play (PnP).

It stores all the packages in a global directory
eliminating the need for a node_modules folder.

PnP uses symlinks (native file links in OS) to link
packages.

If you have 10 Next.js projects (with the same version),
yarn PnP will only install it once in the global directory.

3- pnpm (Performant NPM)
pnpm is the fastest of the three.

It works quite similarly to Yarn’s PnP and, it also
uses symlinks.

The cool thing is that it does not download the whole
packages for new versions, only the changes.

If I were building a project today, I would choose pnpm.

For me, pnpm > yarn > npm.

There are also other alternatives in the market like bun
and deno.

They are not simple package managers. They also include
JS runtime to compile and execute JS and TS.

However, in terms of speed bun is 100x faster than pnpm.

Deno is a relatively new entrant in the market, aiming to evolve
the Node.js ecosystem.

Let me know in the comments:
Which package manager do you regularly?

If you are interested in the JS ecosystem:
Follow for more content

#javascript


ترجمه:

مقایسه مدیران بسته محبوب جاوا اسکریپت:

(npm در مقابل نخ در مقابل pnpm)

npm، نخ و pnpm بسته های محبوب هستند
مدیرانی از دنیای جاوا اسکریپت

تازه واردان در بازار هستند (نان و
deno)، بعداً در مورد آنها بحث خواهیم کرد.

چرا نیاز به مدیر بسته وجود دارد؟

مدیر بسته‌بندی ابزاری است که انتشار را خودکار می‌کند،
نصب، ارتقاء و حذف برنامه های نرم افزاری

حالا سوال بعدی

کدام یک را باید انتخاب کنید و چرا؟

این سوال نیاز به درک عمیق تری دارد و
مقایسه بین گزینه های موجود

بیایید تک تک آنها را درک کنیم.

1- npm (مدیر بسته گره)

npm مدیر بسته پیش فرض Node.js است.
از آنجایی که گزینه پیش فرض است، این گزینه را دارد
بزرگترین جامعه

معایب خود را به همراه دارد.

نصب متوالی یکی از معایب اصلی است
از npm زمان نصب بسته را افزایش می دهد.

npm بسته هایی را برای هر پروژه ای که تأثیر می گذارد تکرار می کند
اندازه دیسک

ممیزی npm به طور پیش فرض خراب است. وجود ندارد
روشی زیبا برای رفع یا به‌روزرسانی آسیب‌پذیری‌ها.

2- نخ (ساخته شده توسط متا)
yarn مشکل دانلود را با موازی حل کرد
دانلودها

همچنین با حالت آفلاین خارج از جعبه عرضه شد.

یارن رویکرد جدیدی برای مدیریت ارائه کرد
بسته ها

به جای تکرار کد بسته برای هر پروژه،
بسته های رایج را بالاتر از درخت بالا می برد.

با این حال، بالا بردن با چالش های خود همراه است.

ممکن است در نهایت چیزی را از یک بسته فرعی وارد کنید
که نصب نکردید

یکی دیگر از معایب بالابر این است که از semver استفاده می کند
(نسخه سازی معنایی).

بنابراین اگر یک بسته به طور مداوم از semver استفاده نمی کند،
ممکن است در نهایت با مشکلاتی روبرو شوید
باعث نشد.

برای حل این موارد، نخ Plug’n’Play (PnP) را اضافه کرد.

تمام بسته ها را در یک فهرست جهانی ذخیره می کند
از بین بردن نیاز به پوشه node_modules.

PnP از symlinks (پیوندهای فایل بومی در سیستم عامل) برای پیوند استفاده می کند
بسته ها

اگر 10 پروژه Next.js دارید (با همان نسخه)،
yarn PnP فقط یک بار آن را در فهرست جهانی نصب می کند.

3- pnpm (Performant NPM)
pnpm سریعترین از این سه است.

کاملاً مشابه PnP Yarn و همچنین کار می کند
از Symlink استفاده می کند.

نکته جالب اینه که کل دانلود نمیشه
بسته های نسخه های جدید، فقط تغییرات.

اگر امروز پروژه ای می ساختم، pnpm را انتخاب می کردم.

برای من، pnpm > نخ > npm.

همچنین جایگزین های دیگری مانند نان در بازار وجود دارد
و دنو.

آنها مدیران بسته ساده نیستند. آنها نیز شامل می شوند
زمان اجرا JS برای کامپایل و اجرای JS و TS.

با این حال، از نظر سرعت bun 100 برابر سریعتر از pnpm است.

Deno یک شرکت نسبتاً جدید در بازار است که قصد دارد تکامل یابد
اکوسیستم Node.js

در نظرات به من اطلاع دهید:
کدام مدیر بسته را به طور منظم انجام می دهید؟

اگر به اکوسیستم JS علاقه مند هستید:
برای مطالب بیشتر فالو کنید

#جاوااسکریپت