Yarn چیست و چگونه آن را نصب کنیم؟
اگر شما یک توسعهدهندهٔ جاوااسکریپت هستید، حتماً با Node.js آشنایی دارید. Node.js یک محیط اجرای کراسپلتفرم و متنباز برای جاوااسکریپت است که تا چند سال اخیر قرار است توسط Bun.js جایگزین شود. این محیط اجرا دارای شهرت و محبوبیت بسیاری است و در سالهای اخیر تعداد زیادی بهروزرسانی دریافت کرده است و ابزارهای متعددی برای توسعهٔ آن توسعه یافتهاند.
زمانی که شما با Node.js کار میکنید، حتماً از یک مدیریتکنندهٔ منابع (package manager) آن استفاده میکنید و احتمالاً یکی از دو مدیریتکنندهٔ معروف تر، NPM یا Yarn، بیشتر با شخصیت شما سازگار است. برای آشنایی با Yarn ابتدا لازم اس کمی با مفهوم package manager آشنا بشوید.
package manager چیست؟
مدیریتکنندهٔ بستهها (package manager) یک ابزار است که برای مدیریت و نصب بستهها و وابستگیهای یک پروژهٔ نرمافزاری استفاده میشود. در جاوااسکریپت و به خصوص در محیط Node.js، مدیریتکنندهٔ بستهها به عنوان یک ابزار کلیدی برای مدیریت کدها و وابستگیهای یک پروژه استفاده میشود.
وظایف اصلی مدیریتکنندهٔ بستهها عبارتند از:
نصب بستههای مورد نیاز برای پروژهٔ شما: مدیریتکنندهٔ بستهها قادر است بستههای مورد نیاز را از مخازن برنامهنویسی (repositories) دانلود و نصب کند. این بستهها ممکن است شامل کتابخانهها، ابزارها و منابع دیگری باشند که برای توسعهٔ پروژهٔ شما لازم است.
مدیریت وابستگیها: در یک پروژهٔ نرمافزاری، ممکن است بستهها و کتابخانههای مختلفی با یکدیگر وابستگی داشته باشند. مدیریتکنندهٔ بستهها این وابستگیها را مدیریت کرده و اطمینان حاصل میکند که همهٔ وابستگیها بهطور صحیح نصب و مدیریت میشوند.
بهروزرسانی بستهها: مدیریتکنندهٔ بستهها قادر است بستههای نصب شده را بهروزرسانی کند و نسخههای جدید را برای استفادهٔ شما فراهم کند. این کار میتواند از نظر امنیتی و عملکردی ضروری باشد.
مدیریت تعاریف پروژه: مدیریتکنندهٔ بستهها قادر است اطلاعاتی مانند نسخهٔ پروژه، نام توسعهدهنده، توضیحات پروژه و موارد دیگر را در فایلهای تعریف پروژه (مانند package.json در Node.js) ذخیره و مدیریت کند.
در محیط Node.js، npm (Node Package Manager) و Yarn دو مدیریتکنندهٔ بستههای معروف هستند که توسط بسیاری از توسعهدهندگان جاوااسکریپت استفاده میشوند. این ابزارها به شما امکان میدهند بستههای مورد نیاز را بهسادگی نصب کرده و وابستگیها را بهطور خودکار مدیریت کنید.
Yarn چیست؟
Yarn یکی از مدیریتکنندههای بستههای معروف در جاوااسکریپت است. این ابزار توسط Facebook توسعه داده شده است و برای مدیریت بستهها و وابستگیهای پروژههای جاوااسکریپت استفاده میشود. Yarn به عنوان یک جایگزین برای npm (Node Package Manager) معرفی شده است و قابلیتهای بسیاری را به توسعهدهندگان جاوااسکریپت ارائه میدهد.
بعضی از ویژگیهای کلیدی Yarn عبارتند از:
- سرعت بالا: Yarn برای دانلود و نصب بستهها از مخازن اینترنتی از الگوریتمهای پیشرفتهای استفاده میکند که سرعت عملیات را افزایش میدهد. با استفاده از یک کش (cache) محلی برای بستهها، Yarn قادر است بستهها را با سرعت بیشتری نصب کند و به اندازهای که امکان دهد از اینترنت استفاده کمتری بکند.
- قابلیت مدیریت وابستگیها: Yarn میتواند وابستگیهای پروژههای جاوااسکریپت را بهطور دقیق مدیریت کند و اطمینان حاصل کند که بستههای مورد نیاز به درستی نصب شدهاند. همچنین قابلیتهایی مانند قفل کردن نسخه (version locking) و حل تضاد وابستگیها (dependency resolution) را نیز دارد.
- مشکلات امنیتی: Yarn امکاناتی را برای مشاهده و برطرف کردن مشکلات امنیتی در بستهها فراهم میکند. با استفاده از پایگاه دادهٔ شناسهٔ باز (open-source vulnerability database)، Yarn به شما اعلان میدهد که آیا بستههای شما به مشکلات امنیتی آشکار یا مخفی برخورد میکنند و راهحلهای اصلاحی را ارائه میدهد.
- مدیریت وبپک (Webpack): Yarn با قابلیت ادغام با ابزارهای محبوب توسعهٔ جاوااسکریپت مانند Webpack هماهنگی خوبی دارد. این به شما امکان میدهد تا با استفاده از Yarn و Webpack بستهها و وابستگیهای خود را بهصورت همزمان و بهصورت خودکار مدیریت کنید.
Yarn با استفاده از فایل yarn.lock
، که یک فایل قفل (lockfile) است، اطمینان حاصل میکند که وابستگیها در پروژه شمYarn یکی از مدیران بستههای محبوب در جاوا اسکریپت است. به عنوان یک بستهبندی منابع، Yarn امکاناتی را برای ساخت، نصب و مدیریت بستهها در پروژههای جاوااسکریپت فراهم میکند. با استفاده از Yarn، شما میتوانید بستههایی که برای پروژه خود نیاز دارید را بهصورت مدیریت شده و با اطمینان بالا نصب کنید.
Yarn از یک فایل معروف به package.json
برای ذخیره اطلاعات مربوط به پروژه و وابستگیهای آن استفاده میکند. این فایل شامل لیستی از بستههای مورد نیاز پروژه، نسخههای آنها و سایر اطلاعات مربوطه است. با اجرای دستوراتی مانند yarn install
، Yarn بستههای مورد نیاز را با توجه به اطلاعات موجود در package.json
دانلود و نصب میکند.
یکی از ویژگیهای مهم Yarn، عملکرد سریع آن است. Yarn از یک مکان محلی به نام Yarn Cache برای ذخیره کش شدههای بستهها استفاده میکند. این کش شامل نسخههای قبلی بستههاست که قبلاً دانلود شدهاند. با استفاده از این کش، Yarn قادر است بستهها را با سرعت بیشتری نصب کند و از میزان ترافیک شبکه کاسته شود.
همچنین، Yarn امکاناتی را برای مدیریت وابستگیها و نسخهبندی بستهها فراهم میکند. شما میتوانید نسخههای دقیق بستهها را مشخص کنید و از تداخل و ناسازگاریها جلوگیری کنید. همچنین، Yarn قابلیتهای امنیتی دارد که به شما کمک میکند از مشکلات امنیتی در بستهها پیشگیری کنید و بروزرسانیهای امنیتی را اعمال کنید.
در کل، Yarn یک ابزار قدرتمند برای مدیریت بستهها و وابستگیها در پروژههای جاوااسکریپت است و توسعهدهندگان را در مدیریت بهتر پروژههایشان یاری میدهد.
آموزش کامل نصب Yarn در ویندوز
شما میتوانید Yarn را در ویندوز با استفاده از دو روش نصب کنید: استفاده از npm یا استفاده از Chocolatey.
نصب Yarn با استفاده از npm:
ابتدا نیاز است که Node.js را در سیستم خود نصب کنید. میتوانید از وبسایت رسمی Node.js در آدرس https://nodejs.org/ رفته و نسخهٔ مورد نظر را دانلود و نصب کنید.
پس از نصب Node.js، باز کنسول (Command Prompt) را باز کنید.در کنسول، دستور زیر را وارد کنید تا npm را بهروزرسانی کنید:
npm install -g npm
حالا با استفاده از npm، دستور زیر را وارد کنید تا Yarn را نصب کنید:
npm install -g yarn
پس از اجرای دستور فوق، npm به طور خودکار Yarn را دانلود و نصب میکند. بعد از اتمام، شما میتوانید Yarn را با استفاده از دستور yarn
در کنسول بررسی کنید.
نصب Yarn با استفاده از Chocolatey:
Chocolatey یک مدیریتکنندهٔ بستههای ویندوز است. ابتدا باید Chocolatey را در سیستم خود نصب کنید. برای اطلاعات بیشتر و نصب Chocolatey، به وبسایت رسمی Chocolatey در آدرس https://chocolatey.org/ مراجعه کنید.
پس از نصب Chocolatey، باز کنسول (Command Prompt) را باز کنید.
در کنسول، دستور زیر را وارد کنید تا Chocolatey Yarn را نصب کند:
choco install yarn
Chocolatey به طور خودکار Yarn را دانلود و نصب میکند. بعد از اتمام، شما میتوانید Yarn را با استفاده از دستور yarn
در کنسول بررسی کنید.
با انجام یکی از این دو روش، شما میتوانید Yarn را در ویندوز نصب کنید و از آن در پروژههای جاوا اسکریپت خود استفاده کنید.
آموزش کامل نصب Yarn در لینوکس
شما میتوانید Yarn را در لینوکس با استفاده از دو روش نصب کنید: استفاده از npm و استفاده از curl.
نصب Yarn با استفاده از npm:
- ابتدا نیاز است که Node.js را در سیستم خود نصب کنید. بستهٔ مدیریت بستههای سیستم عامل خود را استفاده کرده و Node.js را نصب کنید. به عنوان مثال، در توزیعهای مبتنی بر Debian/Ubuntu، میتوانید از دستور زیر استفاده کنید:
sudo apt install nodejs
- پس از نصب Node.js، باز ترمینال را باز کنید.
- در ترمینال، دستور زیر را وارد کنید تا npm را بهروزرسانی کنید:
npm install -g npm
- حالا با استفاده از npm، دستور زیر را وارد کنید تا Yarn را نصب کنید:
npm install -g yarn
- پس از اجرای دستور فوق، npm به طور خودکار Yarn را دانلود و نصب میکند. بعد از اتمام، شما میتوانید Yarn را با استفاده از دستور
yarn
در ترمینال بررسی کنید.
نصب Yarn با استفاده از curl:
- ابتدا ترمینال را باز کنید.
- در ترمینال، دستور زیر را وارد کنید تا Yarn را با استفاده از curl نصب کنید:
curl -o- -L https://yarnpkg.com/install.sh | bash
- دستور فوق پروسهٔ نصب Yarn را آغاز میکند. بعد از اتمام، شما میتوانید Yarn را با استفاده از دستور
yarn
در ترمینال بررسی کنید.
با انجام یکی از این روشها، شما میتوانید Yarn را در لینوکس نصب کنید و از آن در پروژههای جاوا اسکریپت خود استفاده کنید.
آموزش کامل نصب Yarn در مک macOS
شما میتوانید Yarn را در macOS با استفاده از سه روش نصب کنید: استفاده از npm، استفاده از Homebrew و استفاده از curl.
نصب Yarn با استفاده از npm:
- ابتدا نیاز است که Node.js را در سیستم خود نصب کنید. میتوانید از وبسایت رسمی Node.js در آدرس https://nodejs.org/ رفته و نسخهٔ مورد نظر را دانلود و نصب کنید.
- پس از نصب Node.js، باز ترمینال را باز کنید.
- در ترمینال، دستور زیر را وارد کنید تا npm را بهروزرسانی کنید:
npm install -g npm
- حالا با استفاده از npm، دستور زیر را وارد کنید تا Yarn را نصب کنید:
npm install -g yarn
- پس از اجرای دستور فوق، npm به طور خودکار Yarn را دانلود و نصب میکند. بعد از اتمام، شما میتوانید Yarn را با استفاده از دستور
yarn
در ترمینال بررسی کنید.
نصب Yarn با استفاده از Homebrew:
- ابتدا نیاز است که Homebrew را در سیستم خود نصب کنید. برای نصب Homebrew، دستور زیر را در ترمینال وارد کنید:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- پس از نصب Homebrew، دستور زیر را در ترمینال وارد کنید تا Yarn را نصب کنید:
brew install yarn
- Homebrew به طور خودکار Yarn را دانلود و نصب میکند. بعد از اتمام، شما میتوانید Yarn را با استفاده از دستور
yarn
در ترمینال بررسی کنید.
نصب Yarn با استفاده از curl:
- ابتدا ترمینال را باز کنید.
- در ترمینال، دستور زیر را وارد کنید تا Yarn را با استفاده از curl نصب کنید:
curl -o- -L https://yarnpkg.com/install.sh | bash
- دستور فوق پروسهٔ نصب Yarn را آغاز میکند. بعد از اتمام، شما میتوانید Yarn را با استفاده از دستور
yarn
در ترمینال بررسی کنید.
با انجام یکی از این روشها، شما میتوانید Yarn را در macOS نصب کنید و از آن در پروژههای جاوا اسکریپت خود استفاده کنید.
مقایسه کامل مدیریت بسته Yarn و NPM
Yarn و npm هر دو ابزارهای مدیریت بسته هستند که برای پروژههای جاوا اسکریپت استفاده میشوند. ما قبلا در بایت گیت در مقاله NPM چیست و چه کاربردی دارد؟ به طور کامل nmp را بررسی کرده ایم. این دو ابزار برای مدیریت و نصب بستههای مورد نیاز در پروژهها استفاده میشوند. در ادامه، شباهتها و تفاوتهای اصلی بین Yarn و npm را بررسی میکنیم:
شباهتها:
- مدیریت بستهها: هر دو Yarn و npm امکاناتی برای مدیریت بستهها از جمله نصب، حذف، بهروزرسانی و نمایش وابستگیها را فراهم میکنند.
- مخزن بسته: هر دو ابزار از مخزن بسته npm استفاده میکنند. این به معنی این است که بستههایی که در npm موجود هستند، به همراه Yarn قابل استفاده هستند.
- فایلهای تنظیمات: هر دو Yarn و npm از فایلهای تنظیماتی برای تعیین وابستگیها و تنظیمات مربوط به پروژه استفاده میکنند. در صورت استفاده از npm، فایل package.json و در صورت استفاده از Yarn، فایل yarn.lock معمولاً مورد استفاده قرار میگیرد.
تفاوتها:
- سرعت: Yarn به طور کلی سریعتر از npm عمل میکند. Yarn از الگوریتمهای بهینهسازی برای دانلود و نصب بستهها استفاده میکند که باعث میشود عملیاتهای Yarn به صورت کلی سریعتر انجام شود.
- قفل وابستگیها: Yarn از فایل yarn.lock برای قفل کردن وابستگیها استفاده میکند. این فایل حاوی نسخههای مشخصی از بستهها است که در زمانی خاص نصب شدهاند. در حالی که npm از فایل package-lock.json برای همین منظور استفاده میکند. این امر به کنترل بهتر و مطمئنتر وابستگیها در Yarn کمک میکند.
- ویژگیها و پشتیبانی از عملیات موازی: Yarn برخی از ویژگیها و عملیات موازی را که در npm وجود ندارد، فراهم میکند. برای مثال، Yarn اجازه میدهد بستهها را به صورت همزمان نصب کند و از ظرفیت پردازشی بهتر سیستمهای چند هستهای بهره ببرد.
- نمایش خروجی: خروجی Yarn و npm در ترمینال ممکن است در برخی جزادامه داده شود…
- نمایش خروجی: خروجی Yarn و npm در ترمینال ممکن است در برخی جزئیات متفاوت باشد، از جمله نحوه نمایش پیشرفت نصب بستهها و پیامهای خطا و اطلاعات مربوط به وابستگیها.
- حالت تولید: Yarn دارای یک حالت تولید (production mode) است که بستههایی که در آن نیازی به توسعه نیستند را نصب نمیکند. این حالت میتواند در محیطهای تولیدی و بهینهسازی نهایی برنامه مفید باشد. در npm نیز میتوان با استفاده از پارامتر
--production
همین عملکرد را داشت. - ابزارهای کمکی: Yarn برخی ابزارهای کمکی و دستورات اضافی را فراهم میکند که در npm وجود ندارد. مثلاً دستورات
yarn upgrade-interactive
وyarn why
در Yarn به کار میروند.
در کل، Yarn و npm هر دو ابزارهای مناسبی برای مدیریت بستهها هستند و به عنوان یک توسعهدهنده میتوانید بر اساس نیازهای خود از یکی از آنها استفاده کنید. اما با توجه به سرعت و عملکرد بهتر Yarn در برخی موارد، ممکن است ترجیح داده شود.
آموزش استفاده از Yarn
وقتی قصد داریم یک پروژه را با استفاده از npm شروع کنیم، باید دستور npm init
را اجرا کنیم. به همین شکل، برای استفاده از Yarn باید یک پوشه را برای پروژه خود ایجاد کرده و ترمینال را درون آن باز کنیم. سپس دستور yarn init
را اجرا میکنیم. با اجرای این دستور، چندین فایل درون پوشه مورد نظر ساخته میشود. به عنوان مثال، یک فایل به نام “.gitignore” وجود دارد که برای نادیده گرفتن برخی از فایلها توسط Git استفاده میشود. همچنین، یک فایل به نام “package.json” وجود دارد که مدیریت بستههای مورد استفاده ما را بر عهده دارد.
شروع یک پروژه جدید با استفاده از yarn
برای شروع یک پروژه جدید با استفاده از Yarn، میتوانید مراحل زیر را دنبال کنید:
ایجاد پوشه: یک پوشه جدید را برای پروژه خود ایجاد کنید و به آن نام دلخواهی بدهید.
باز کردن ترمینال: ترمینال را در داخل پوشه پروژه باز کنید.
نصب Yarn: اگر Yarn را بر روی سیستم خود نصب نکردهاید، میتوانید ابتدا Yarn را نصب کنید. برای نصب Yarn، به وبسایت Yarn (https://yarnpkg.com) مراجعه کنید و دستورات مربوط به نصب را بر روی سیستم عامل خود دنبال کنید.
مقداردهی اولیه: در ترمینال، دستور زیر را اجرا کنید تا یک پرونده package.json ایجاد شود:
yarn init
این دستور شما را راهنمایی میکند تا اطلاعات مربوط به پروژه خود را وارد کنید، مانند نام پروژه، نویسنده، نسخه و غیره. میتوانید این اطلاعات را به دلخواه خود تغییر دهید یا به صورت پیشفرض باقی بگذارید.
نصب بستهها: حالا میتوانید بستههای مورد نیاز پروژه خود را با استفاده از Yarn نصب کنید. به عنوان مثال، برای نصب بسته React، دستور زیر را در ترمینال اجرا کنید:
yarn add react
این دستور بسته React را نصب میکند و وابستگیهای آن را در فایل package.json ثبت میکند.
استفاده از بستهها: حالا میتوانید بستههای نصب شده را در پروژه خود استفاده کنید. برای مثال، در فایلهای جاوااسکریپت خود میتوانید بسته React را import کرده و از آن استفاده کنید.
با این مراحل، شما یک پروژه جدید با استفاده از Yarn را شروع کردهاید و میتوانید با نصب و استفاده از بستههای دیگر، آن را گسترش دهید.
دستور yarn add
برای افزودن یک پکیج جدید با استفاده از دستور yarn add
، میتوانید مراحل زیر را دنبال کنید:
باز کردن ترمینال: ترمینال را در داخل پوشه پروژه باز کنید.
نصب پکیج: در ترمینال، دستور زیر را اجرا کنید تا پکیج مورد نظر نصب شود. جایگزین <package-name>
نام پکیج مورد نظر خود را قرار دهید:
yarn add
به عنوان مثال، برای نصب پکیج axios
، دستور زیر را وارد میکنیم:
yarn add axios
این دستور پکیج axios
را از منبع پیشفرض (npm registry) دانلود کرده و در پوشه node_modules
پروژه شما نصب میکند. همچنین، وابستگیهای پکیج را در فایل package.json
ثبت میکند.
استفاده از پکیج: حالا میتوانید از پکیج نصب شده در پروژه خود استفاده کنید. به عنوان مثال، در فایلهای جاوااسکریپت خود، میتوانید پکیج axios
را import کرده و از آن استفاده کنید:
import axios from 'axios';
// Using the axios package
axios.get('https://api.example.com/data')
.then(response => {
// Process the response
})
.catch(error => {
// Handle errors
});
با این مراحل، شما پکیج مورد نظر خود را با استفاده از دستور yarn add
نصب کرده و آن را در پروژه خود استفاده کردهاید.
بروسانی یک پکیج با yarn
برای بهروز رسانی یک پکیج با استفاده از Yarn، میتوانید مراحل زیر را دنبال کنید:
- باز کردن ترمینال: ترمینال را در داخل پوشه پروژه باز کنید.
- بهروزرسانی پکیج: در ترمینال، دستور زیر را اجرا کنید تا پکیج مورد نظر به آخرین نسخه منتشر شده بهروزرسانی شود. جایگزین
<package-name>
نام پکیج مورد نظر خود را قرار دهید:
yarn upgrade
به عنوان مثال، برای بهروزرسانی پکیج `axios`، دستور زیر را وارد میکنیم:
yarn upgrade axios
این دستور پکیج axios
را به آخرین نسخهی منتشر شده بهروزرسانی میکند.
بهروزرسانی همه پکیجها: اگر میخواهید تمام پکیجهای نصب شده در پروژه خود را به آخرین نسخههای منتشر شده بهروزرسانی کنید، میتوانید از دستور زیر استفاده کنید:
yarn upgrade
این دستور همه پکیجهای نصب شده را به آخرین نسخههای منتشر شده بهروزرسانی میکند.
حذف پکیج
برای حذف یک پکیج از پروژه خود با استفاده از Yarn، میتوانید مراحل زیر را دنبال کنید:
- باز کردن ترمینال: ترمینال را در داخل پوشه پروژه باز کنید.
- حذف پکیج: در ترمینال، دستور زیر را اجرا کنید تا پکیج مورد نظر حذف شود. جایگزین
<package-name>
نام پکیجی که قصد حذف آن را دارید را قرار دهید:
yarn remove
به عنوان مثال، برای حذف پکیج `axios`، دستور زیر را وارد میکنیم:
yarn remove axios
این دستور پکیج axios
را از پوشه node_modules
و همچنین از فهرست وابستگیهای فایل package.json
حذف میکند.
تأیید حذف پکیج: پس از اجرای دستور حذف، Yarn پکیج مورد نظر را حذف خواهد کرد و تأیید حذف را در ترمینال نشان میدهد.
با این مراحل، شما پکیج مورد نظر خود را با استفاده از دستور yarn remove
از پروژه خود حذف کردهاید.
جمع بندی: Yarn یا NPM کدام یک بهتر است؟
در اینجا، روشهای محبوب نصب Yarn در این آموزش بررسی شدهاند. شما میتوانید یکی از این روشها را بر اساس سیستم عامل خود انتخاب کنید. همچنین، اصول ابتدایی استفاده از مدیریت کننده پکیج Yarn، از جمله شروع یک پروژه جدید، مدیریت وابستگیها و ارتقاء آن را نیز پوشش دادهایم.
انتخاب بین Yarn و npm بستگی به نیازها و شرایط پروژه دارد. Yarn سریعتر و با قابلیت کش کردن و پیشبینی نصب پکیجها است. همچنین، قابلیتهای امنیتی اضافی دارد. اما ساختار پیچیدهتری دارد و ممکن است نیاز به آموزش بیشتری داشته باشد. npm از جعبه ابزار پیشفرض Node.js استفاده میکند و تعداد بیشتری پکیج قابل دسترسی دارد. اما سرعت کمتری نسبت به Yarn دارد و قابلیتهای پیشبینی و بهینهتر کش کردن وابستگیها را ندارد. انتخاب بین آنها بستگی به نوع پروژه و نیازهای خاص شما دارد.