جابجایی نسخههای Node با NVM
استفاده پایه
NVM دستورات ساده اما قدرتمندی برای جابجایی بین نسخههای مختلف Node.js ارائه میدهد. اساسیترین دستور nvm use است که به شما امکان میدهد یک نسخه نصب شده Node.js را فعال کنید.
مشاهده نسخههای موجود Node
قبل از جابجایی، میتوانید از دستور nvm ls برای مشاهده نسخههای نصب شده Node.js استفاده کنید.
bash
nvm ls
روشهای مختلف جابجایی نسخهها
استفاده از شماره نسخه کامل
میتوانید شماره نسخه کامل را مشخص کنید:
مثلاً، برای استفاده از Node.js v24.0.2:
bash
$ nvm use 24.0.2
Now using node v24.0.2 (64-bit)
استفاده از شماره نسخه اصلی
فقط شماره نسخه اصلی را مشخص کنید، و NVM از آخرین نسخه نصب شده آن نسخه اصلی استفاده میکند:
bash
$ nvm use 14
Using node v14.17.6 (npm v6.14.15)استفاده از نامهای مستعار
NVM چندین نام مستعار خاص داخلی دارد:
bash
# استفاده از آخرین نسخه پایدار
$ nvm use node
Now using node v16.14.0 (npm v8.3.1)
# استفاده از آخرین نسخه LTS
$ nvm use lts/*
Now using node v16.13.2 (npm v8.1.2)
# استفاده از نسخه خاص LTS
$ nvm use lts/gallium
Now using node v16.13.2 (npm v8.1.2)مشخص کردن معماری (فقط Windows)
در سیستمهای Windows، میتوانید مشخص کنید که از نسخه 32 بیتی یا 64 بیتی استفاده شود:
bash
$ nvm use 14.17.0 32
$ nvm use 16.14.0 64جابجایی خودکار نسخه با فایلهای .nvmrc
یک فایل به نام .nvmrc در دایرکتوری ریشه پروژه خود با شماره نسخه Node.js به عنوان محتوای آن ایجاد کنید. سپس، به سادگی دستور nvm use را (بدون آرگومان) اجرا کنید، و NVM نسخه را از فایل .nvmrc میخواند و به طور خودکار به آن نسخه تغییر میدهد.
- یک فایل
.nvmrcایجاد کنید:
bash
$ echo "16.14.0" > .nvmrc- در دایرکتوری پروژه اجرا کنید:
bash
$ nvm use
Found '/path/to/project/.nvmrc' with version <16.14.0>
Now using node v16.14.0 (npm v8.3.1)مثالهایی از محتوای فایل .nvmrc:
16.14.0- نسخه دقیق16- آخرین نسخه نسخه اصلیlts/*- آخرین نسخه LTSnode- آخرین نسخه Node.js
تنظیم نسخه پیشفرض Node.js
میتوانید یک نسخه پیشفرض Node.js تنظیم کنید که هر بار که یک ترمینال جدید باز میکنید به طور خودکار استفاده شود:
bash
$ nvm alias default 16.14.0
default -> 16.14.0 (-> v16.14.0)به این ترتیب، حتی اگر دستور nvm use را اجرا نکنید، نسخه مشخص شده به طور پیشفرض استفاده میشود.
ملاحظات هنگام جابجایی نسخهها
مدیریت بسته سراسری
هنگام جابجایی نسخههای Node.js، بستههای نصب شده سراسری به طور خودکار منتقل نمیشوند. هر نسخه Node.js مجموعه جداگانهای از بستههای سراسری دارد.
اگر میخواهید تمام بستههای سراسری را از یک نسخه به نسخه دیگر کپی کنید، میتوانید از این استفاده کنید:
bash
# کپی بستههای سراسری از v14.17.0 به v16.14.0
$ nvm install 16.14.0 --reinstall-packages-from=14.17.0استفاده موقت از نسخه دیگر
اگر فقط میخواهید یک دستور را با نسخه متفاوت Node.js اجرا کنید بدون تغییر نسخه جلسه فعلی، میتوانید از nvm run استفاده کنید:
bash
$ nvm run 14.17.0 app.jsبررسی نسخه فعلی
برای بررسی اینکه کدام نسخه Node.js در حال حاضر استفاده میشود:
bash
$ nvm current
v16.14.0مشکلات و راهحلهای رایج
از دست رفتن متغیرهای محیطی پس از جابجایی
مشکل: پس از جابجایی نسخهها، متغیرهای محیطی قبلاً تنظیم شده مانند NODE_PATH ممکن است از دست بروند. راهحل: تنظیمات متغیر محیطی را به فایل .bashrc یا .zshrc خود اضافه کنید.
جابجایی خودکار نسخه
اگر میخواهید هنگام ورود به دایرکتوری پروژه به طور خودکار به نسخه Node.js مشخص شده در فایل .nvmrc تغییر دهید، میتوانید موارد زیر را به .bashrc یا .zshrc خود اضافه کنید:
برای Bash:
bash
cdnvm() {
command cd "$@" || return $?
nvm_path="$(nvm_find_up .nvmrc | tr -d '\n')"
if [ -e "$nvm_path/.nvmrc" ]; then
declare default_version;
default_version="$(nvm version default)"
declare nvmrc_version;
nvmrc_version="$(nvm version "$(cat "$nvm_path/.nvmrc")")"
if [ "$nvmrc_version" = "N/A" ]; then
echo "Warning: $(cat "$nvm_path/.nvmrc") version not installed"
elif [ "$nvmrc_version" != "$default_version" ]; then
nvm use > /dev/null
fi
fi
}
alias cd='cdnvm'برای Zsh:
bash
autoload -U add-zsh-hook
load-nvmrc() {
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
nvm use
fi
elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrcبهترین روشها
- ایجاد یک فایل
.nvmrcبرای هر پروژه: اطمینان میدهد که اعضای تیم از همان نسخه Node.js استفاده میکنند - بهروزرسانی منظم به نسخههای LTS: نسخههای LTS پایدارتر و مناسب برای محیطهای تولید هستند
- استفاده از نسخهگذاری معنایی: نسخههای دقیق را در فایلهای
.nvmrcمشخص کنید تا از مشکلات سازگاری جلوگیری کنید - تنظیم نسخه پیشفرض مناسب: یک نسخه پیشفرض Node.js برای توسعه روزمره تنظیم کنید
پارامترهای دستور nvm use
| پارامتر | توضیحات |
|---|---|
<version> | نسخه Node.js برای استفاده را مشخص میکند |
node | از آخرین نسخه Node.js استفاده میکند |
lts/* | از آخرین نسخه پشتیبانی بلندمدت استفاده میکند |
lts/<name> | از یک نسخه خاص پشتیبانی بلندمدت استفاده میکند |
<version> <architecture> | (فقط Windows) مشخص میکند که از نسخه 32 یا 64 بیتی استفاده شود |
با این روشها، میتوانید به راحتی بین نسخههای مختلف Node.js جابجا شوید تا نیازهای توسعه پروژههای مختلف را برآورده کنید.