فرصت مطالعه ندارید؟ چکیده این مطلب را همینجا گوش دهید:
مدیریت نسخههای مختلف Node.js روی یک سیستم همواره یکی از چالشهای اصلی توسعهدهندگان وب و جاوا اسکریپت بوده است. پروژههای مختلف ممکن است به نسخههای متفاوتی از Node.js نیاز داشته باشند و بهروزرسانی یا تغییر دستی نسخه، فرآیندی زمانبر و خطاپذیر است. ابزار متنباز nvm (کوچکشدهی Node Version Manager) یک اسکریپت سازگار با استانداردهای POSIX است که امکان نصب، تغییر و مدیریت سریع چندین نسخه فعال از Node.js را مستقیماً از طریق خط فرمان فراهم میکند. این ابزار به هر توسعهدهندهای اجازه میدهد بدون درگیری با مشکلات دسترسی روت، محیط توسعه خود را شخصیسازی کند.
معرفی و قابلیتهای اصلی nvm
ابزار nvm به صورت مستقل برای هر کاربر روی سیستم نصب میشود و در پوستههای مختلف سازگار با POSIX (مانند bash، zsh، dash و ksh) در محیطهای یونیکس، مکاِواس و زیرسیستم لینوکس در ویندوز (WSL) کار میکند. با این ابزار میتوانید تنها با یک دستور ساده، نسخه فعال محیط خود را تغییر دهید. همانطور که در توسعه نرمافزار گاهی نیاز داریم ابزارهای متفاوتی مانند پتال (Petal): ابزار متنباز و رایگان برای برنامهنویسی زوجی را برای بهینهسازی کار تیمی به کار بگیریم، استفاده از nvm نیز سرعت مدیریت وابستگیهای پروژه را بهطور چشمگیری افزایش میدهد.
برخی از مهمترین ویژگیهای این ابزار عبارتند از:
- نصب نسخههای مختلف Node.js و npm بدون نیاز به دسترسی مدیریتی (sudo)
- سوییچ آنی و آسان بین نسخههای مختلف در ترمینال
- پشتیبانی کامل از فایل
.nvmrcبرای تشخیص خودکار نسخه مورد نیاز پروژه - قابلیت نصب نسخههای منطبق با پشتیبانی بلندمدت (LTS)
| ویژگی | مقدار |
|---|---|
| نام پروژه | Node Version Manager (nvm) |
| زبان برنامهنویسی | Shell (Bash / POSIX Script) |
| مجوز (License) | MIT |
| تعداد ستاره در گیتهاب | ۹۵,۵۵۹+ |
| وضعیت دسترسی ایران | بدون محدودیت (Accessible) |
آموزش نصب و بهروزرسانی nvm
برای نصب یا بهروزرسانی nvm روی سیستم خود، میتوانید از دستورات استاندارد مبتنی بر cURL یا Wget استفاده کنید. این اسکریپت مخزن پروژه را در دایرکتوری ~/.nvm کلون کرده و تنظیمات لازم را به فایل پیکربندی پوسته شما (مانند ~/.bashrc یا ~/.zshrc) اضافه میکند.
اگر از ابزار cURL استفاده میکنید، دستور زیر را در ترمینال اجرا کنید:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bashو در صورتی که ابزار Wget را ترجیح میدهید، از دستور زیر بهره ببرید:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bashپس از اجرای دستورات بالا، اسکریپت راهاندازی، قطعه کد زیر را به فایل تنظیمات پوسته اضافه میکند تا در هر بار باز شدن ترمینال، nvm بارگذاری شود:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # این خط nvm را بارگذاری میکندبررسی صحت نصب
از آنجایی که nvm به صورت یک تابع (Function) در پوسته بارگذاری میشود و یک فایل اجرایی مستقل نیست، برای بررسی صحت نصب آن نباید از دستور which استفاده کنید. دستور صحیح برای این کار به شکل زیر است:
command -v nvmاگر نصب موفقیتآمیز بوده باشد، خروجی ترمینال کلمه nvm را نمایش خواهد داد. در صورتی که با خطای عدم شناخت دستور مواجه شدید، کافی است ترمینال را بسته و دوباره باز کنید یا فایل پیکربندی پوسته خود را با دستور source ~/.bashrc (یا فایل مربوط به پوسته خود) مجدداً فراخوانی کنید.
نحوه استفاده و کار با نسخههای مختلف Node.js
پس از نصب موفقیتجمیز nvm، میتوانید به سادگی نسخههای مختلف Node.js را نصب و مدیریت کنید. در ادامه نمونهای از نحوه جابجایی بین نسخهها آورده شده است:
$ nvm install 24
Now using node v24.14.0 (npm v11.9.0)
$ node -v
v24.14.0
$ nvm use 22
Now using node v22.22.1 (npm v10.9.4)
$ node -v
v22.22.1
$ nvm use 20
Now using node v20.20.1 (npm v10.8.2)
$ node -v
v20.20.1در مثال بالا، ابتدا نسخه ۲۴ نصب و فعال میشود، سپس با دستور nvm use میتوان به راحتی بین نسخههای ۲۲ و ۲۰ سوییچ کرد بدون اینکه نیازی به حذف نسخه قبلی باشد.
نصب nvm در محیط داکر (Docker)
هنگامی که پوسته را به صورت غیرتعاملی (Non-interactive) در یک کانتینر داکر فراخوانی میکنید، فایلهای پروفایل معمولی بارگذاری نمیشوند. برای استفاده از nvm در این محیطها، میتوانید متغیر محیطی BASH_ENV را مطابق نمونهی زیر تنظیم کنید:
# استفاده از بش به عنوان شل
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# ایجاد فایل اسکریپت برای پوستههای تعاملی و غیرتعاملی
ENV BASH_ENV="${HOME:-/root}/.bash_env"
RUN touch "${BASH_ENV}"
RUN echo '. "${BASH_ENV}"' >> ~/.bashrc
# دانلود و نصب nvm
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | PROFILE="${BASH_ENV}" bash
RUN echo node > .nvmrc
RUN nvm installاین اسکریپت محیط داکر را طوری پیکربندی میکند که nvm و پکیجهای وابسته به طور خودکار در زمان بیلد و اجرای کانتینر در دسترس باشند.
پرسشهای متداول
چرا دستور which nvm کار نمیکند؟
ابزار nvm یک فایل اجرایی باینری نیست، بلکه به عنوان یک تابع پوسته (Shell Function) بارگذاری میشود. برای بررسی نصب آن باید از دستور command -v nvm استفاده کنید.
آیا nvm روی سیستمعامل ویندوز پشتیبانی میشود؟
nvm به صورت رسمی روی سیستمعامل ویندوز اجرا نمیشود، اما در محیطهای سازگار مانند WSL (زیرسیستم لینوکس در ویندوز)، Git Bash یا Cygwin به خوبی کار میکند. برای ویندوز ابزارهای جایگزین مانند nvm-windows وجود دارند.
چگونه میتوان نسخه پیشفرض Node.js را تعیین کرد؟
میتوانید با استفاده از دستور nvm alias default <version> نسخه مورد نظر خود را به عنوان پیشفرض سیستم تعیین کنید تا در هر بار باز کردن ترمینال به صورت خودکار فعال شود.
جمعبندی
ابزار متنباز nvm یکی از ابزارهای ضروری و استاندارد برای هر توسعهدهنده جاوا اسکریپت است که دغدغهی مدیریت نسخههای مختلف Node.js و npm را از بین میبرد. با قابلیتهایی همچون نصب آسان، سوییچ سریع میان نسخهها و سازگاری با فایلهای پیکربندی پروژه، روند توسعه و استقرار برنامهها بسیار روانتر خواهد شد.




