شاید هر روز pacman -Syu بزنید، ولی آخرینبار کی هر major مربوط به Node را در nvm تازه کردید؟
update-nvm majorهایی را که از قبل نصب دارید (یا صریحاً پاس میدهید) پیمایش میکند، آخرین patch هر خط را نصب میکند، بستههای سراسری npm را تازه میکند، با --latest-npm (پیشفرض روشن) npm را ارتقا میدهد و corepack enable را اجرا میکند. اگر major از قبل روی آخرین patch باشد، Node دست نخورده میماند ولی globals مگر با --skip-npm باز هم تازه میشوند.
نصب
| |
به nvm و curl نیاز دارید. اگر ~/.local/bin در PATH نیست، اضافه کنید.
برای بررسی سورس: static/scripts/update-nvm.sh.
شروع سریع
| |
چه کار میکند
- majorهای هدف را مشخص میکند (نصبشدهها،
--lts، یا نسخههای صریح). - برای هر major، آخرین release را با nvm نصب میکند مگر از قبل جاری باشد (یا
--force/--npm-only). - مگر با
--skip-npm، بستههای سراسری npm را تازه میکند. - مگر با
--no-latest-npm، npm را به جدیدترین نسخهٔ پشتیبانیشده ارتقا میدهد. - مگر با
--no-corepack،corepack enableرا اجرا میکند. - با
--prune، patchهای قدیمیتر همان major را حذف میکند.
اگر major هنوز نصب نباشد، میپرسد آیا globals را از major دیگری کپی کند. Enter = نصب تازه؛ یا شمارهٔ منبع را بزنید. برای نصب غیرتعاملی، NVM_REINSTALL_FROM را ببینید.
دستورها و گزینهها
| گزینه | توضیح |
|---|---|
| (بدون آرگومان) | همهٔ majorهای نصبشده |
VERSION … | بهروزرسانی یا نصب majorهای دادهشده |
--lts | فقط lts/* |
--force, -f | نصب مجدد حتی اگر patch جاری باشد |
--prune | حذف patchهای قدیمیتر در هر major |
--latest-npm | ارتقای npm (پیشفرض: روشن) |
--no-latest-npm | نگه داشتن npm همراه Node |
--no-corepack | رد شدن از corepack enable |
--skip-npm | فقط Node؛ بدون globals |
--npm-only | فقط npm و globals |
--quiet, -q | خروجی کم؛ بدون پرسش نصب |
--dry-run, -n | فقط نمایش؛ بدون تغییر |
--self-update | بهروزرسانی خود اسکریپت از omid.dev |
--version | چاپ نسخهٔ اسکریپت |
-h, --help | راهنما |
متغیرهای محیطی
| متغیر | توضیح |
|---|---|
NVM_DIR | مسیر nvm (پیشفرض: ~/.nvm) |
NVM_UPDATE_VERSIONS | نسخههای جداشده با فاصله (با --lts نادیده گرفته میشود) |
NVM_REINSTALL_FROM | برای نصب غیرتعاملی major جدید، کپی globals از این major |
UPDATE_NVM_SCRIPT_URL | URL جایگزین برای --self-update |
UPDATE_NVM_SKIP_SELF_CHECK | با 1 بررسی نسخهٔ جدیدتر اسکریپت را رد کنید |
نمونهٔ cron
0 3 * * 0 ~/.local/bin/update-nvm -q --lts --prune
خودبهروزرسانی
| |
در اجرای عادی ممکن است هشدار نسخهٔ جدیدتر اسکریپت بدهد. با UPDATE_NVM_SKIP_SELF_CHECK=1 آن را خاموش کنید.
مرتبط
- یادداشت کوتاه: /notes/178818221780902383/
- سورس:
static/scripts/update-nvm.sh