با انتشار Node.js 16.9.0 ابزار جدیدی به نام Corepack عرضه شد و به عنوان یک اسکریپت Node با عنوان zero-runtime-dependency توصیف می شود که پلی بین پروژه های Node و package manager هایی مانند Yarn و Pnpm است.
نود جی اس دارای یک مدیریت بسته به نام NPM است که وقتی Node.js روی سیستم نصب می شود، با آن نصب می شود. Corepack به ما امکان میدهد تا از package manager های دیگری، بدون نیاز به نصب آنها به صورت global بر روی سیستم استفاده کنیم.
کورپک یک اسکریپت در خود Node.js است و با خط فرمان قابل دسترسی است. دارای دستوراتی برای فعال کردن، غیرفعال کردن و آمادهسازی package manager میباشد و از آنجایی که هنوز یک ویژگی آزمایشی در نظر گرفته می شود، به طور پیش فرض غیرفعال است.
برای فعال کردن Corepack کافیست دستور زیر را در ترمینال خود تایپ کنید.
corepack enable
همچنین میتوانید مدیریت بسته خاصی را با قرار دادن نام آن در جلوی دستور فعال کنید.
corepack enable yarn
اگر میخواهید corepack را غیرفعال کنید، میتوانید با استفاده از دستور زیر آن را غیرفعال کنید.
corepack disable
در مثال زیر قصد داریم تا yarn package manager را فعال کنم.
توجه: با Corepack می توانید یک یا بیشتر از یک مدیر بسته یا یک نسخه خاص از آن را فعال کنید.
corepack prepare yarn@1.22.11 --activate
هنگامی که مدیر بسته خود را فعال کردیم، می توانیم دستورات موجود را با استفاده از Corepack اجرا کنیم:
corepack yarn add axios
اگر به فایل package.json نگاه کنیم، یک وابستگی برای axios خواهد داشت. همچنین یک تنظیم packageManager در آن داریم که فهرستی از مدیران بسته که میخواهیم برای پروژه استفاده کنیم را نشان می دهد:
{ "name": "sampleproject", "version": "1.0.0", "main": "index.js", "type": "module", "license": "MIT", "scripts": { "start": "node index.js" }, "packageManager": "yarn@1.22.11", "dependencies": { "axios": "^0.21.4" } }