บทนำ
เกี่ยวกับ
การติดตั้งและการอัพเดต
หมายเหตุเพิ่มเติม
การแก้ไขปัญหาบน Linux
การแก้ไขปัญหาบน macOS
เข้าใจได้
ติดตั้งและอัปเดตสคริปต์
ตรวจสอบการติดตั้ง
หมายเหตุสำคัญ
ติดตั้งคอมไพล์
ติดตั้งด้วยตนเอง
อัปเกรดด้วยตนเอง
การใช้งาน
การเรียก nvm use
โดยอัตโนมัติในไดเร็กทอรีที่มีไฟล์ .nvmrc
ทุบตี
zsh
ปลา
ส่งส่วนหัวการอนุญาตไปที่มิเรอร์
สีที่กำหนดเองยังคงมีอยู่
ระงับเอาต์พุตที่มีสี
การสนับสนุนระยะยาว
การย้ายแพ็คเกจทั่วโลกขณะติดตั้ง
แพ็คเกจสากลเริ่มต้นจากไฟล์ขณะติดตั้ง
io.js
เวอร์ชันระบบของโหนด
รายการเวอร์ชัน
การตั้งค่าสีที่กำหนดเอง
กำลังคืนค่า PATH
ตั้งค่าเวอร์ชันโหนดเริ่มต้น
ใช้มิเรอร์ของโหนดไบนารี
.nvmrc
การบูรณาการเชลล์ที่ลึกยิ่งขึ้น
การทดสอบการทำงาน
ตัวแปรสภาพแวดล้อม
เสร็จสิ้นการทุบตี
การใช้งาน
ปัญหาความเข้ากันได้
การติดตั้ง nvm บน Alpine Linux
อัลไพน์ลินุกซ์ 3.13+
อัลไพน์ลินุกซ์ 3.5 - 3.12
การถอนการติดตั้ง / การถอดออก
ถอนการติดตั้งด้วยตนเอง
นักเทียบท่าสำหรับสภาพแวดล้อมการพัฒนา
ปัญหา
การแก้ไขปัญหา macOS
การแก้ไขปัญหา WSL
ผู้ดูแล
การสนับสนุนโครงการ
การสนับสนุนองค์กร
ใบอนุญาต
ประกาศเกี่ยวกับลิขสิทธิ์
nvm
ช่วยให้คุณติดตั้งและใช้โหนดเวอร์ชันต่างๆ ได้อย่างรวดเร็วผ่านบรรทัดคำสั่ง
ตัวอย่าง:
$nvm ใช้ 16 ตอนนี้ใช้โหนด v16.9.1 (npm v7.21.1) $ โหนด -v เวอร์ชัน 16.9.1 $nvm ใช้ 14 ตอนนี้ใช้โหนด v14.18.0 (npm v6.14.15) $ โหนด -v เวอร์ชัน 14.18.0 $ nvm ติดตั้ง 12 ตอนนี้ใช้โหนด v12.22.6 (npm v6.14.5) $ โหนด -v เวอร์ชัน 12.22.6
ง่ายขนาดนั้น!
nvm เป็นตัวจัดการเวอร์ชันสำหรับ node.js ซึ่งได้รับการออกแบบมาเพื่อติดตั้งต่อผู้ใช้ และเรียกใช้ต่อเชลล์ nvm
ทำงานบนเชลล์ที่สอดคล้องกับ POSIX ใดๆ (sh, dash, ksh, zsh, bash) โดยเฉพาะบนแพลตฟอร์มเหล่านี้: unix, macOS และ windows WSL
หากต้องการ ติดตั้ง หรือ อัพเดต nvm คุณควรรันสคริปต์การติดตั้ง ในการทำเช่นนั้น คุณอาจดาวน์โหลดและเรียกใช้สคริปต์ด้วยตนเอง หรือใช้คำสั่ง cURL หรือ Wget ต่อไปนี้:
ขด -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | ทุบตี
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | ทุบตี
การรันคำสั่งใดคำสั่งหนึ่งข้างต้นจะเป็นการดาวน์โหลดสคริปต์และรันสคริปต์นั้น สคริปต์จะโคลนที่เก็บ nvm ไปที่ ~/.nvm
และพยายามเพิ่มบรรทัดต้นฉบับจากตัวอย่างด้านล่างไปยังไฟล์โปรไฟล์ที่ถูกต้อง ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
หรือ ~/.bashrc
) .
ส่งออก 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
หากมีตัวแปรสภาพแวดล้อม $XDG_CONFIG_HOME
อยู่ ตัวแปรนั้นจะวางไฟล์ nvm
ไว้ที่นั่น
คุณสามารถเพิ่ม --no-use
ต่อท้ายสคริปต์ด้านบน (... nvm.sh --no-use
) เพื่อเลื่อนการใช้ nvm
จนกว่าคุณ use
ด้วยตนเอง
คุณสามารถปรับแต่งแหล่งที่มาการติดตั้ง ไดเร็กทอรี โปรไฟล์ และเวอร์ชันได้โดยใช้ตัวแปร NVM_SOURCE
, NVM_DIR
, PROFILE
และ NODE_VERSION
เช่น: curl ... | NVM_DIR="path/to/nvm"
ตรวจสอบให้แน่ใจว่า NVM_DIR
ไม่มีเครื่องหมายทับต่อท้าย
โปรแกรมติดตั้งสามารถใช้ git
, curl
หรือ wget
เพื่อดาวน์โหลด nvm
แล้วแต่จำนวนใดจะสามารถใช้ได้
คุณสามารถสั่งให้โปรแกรมติดตั้งไม่แก้ไขการกำหนดค่าเชลล์ของคุณ (เช่น หากคุณดำเนินการเสร็จสิ้นผ่านปลั๊กอิน zsh nvm แล้ว) โดยการตั้งค่า PROFILE=/dev/null
ก่อนรันสคริปต์ install.sh
นี่คือตัวอย่างคำสั่งบรรทัดเดียวในการทำเช่นนั้น: PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash'
บน Linux หลังจากรันสคริปต์การติดตั้ง หากคุณได้รับคำ nvm: command not found
หรือไม่เห็นผลตอบรับจากเทอร์มินัลของคุณหลังจากที่คุณพิมพ์ command -v nvm
เพียงปิดเทอร์มินัลปัจจุบันของคุณ เปิดเทอร์มินัลใหม่ แล้วลองตรวจสอบอีกครั้ง หรือคุณสามารถรันคำสั่งต่อไปนี้สำหรับเชลล์ต่างๆ บนบรรทัดคำสั่ง:
ทุบตี : source ~/.bashrc
zsh : source ~/.zshrc
ksh : . ~/.profile
สิ่งเหล่านี้ควรรับคำสั่ง nvm
ตั้งแต่ OS X 10.9 เป็นต้นมา /usr/bin/git
ได้รับการตั้งค่าล่วงหน้าโดยเครื่องมือบรรทัดคำสั่ง Xcode ซึ่งหมายความว่าเราไม่สามารถตรวจสอบได้อย่างถูกต้องว่ามีการติดตั้ง Git หรือไม่ คุณต้องติดตั้งเครื่องมือบรรทัดคำสั่ง Xcode ด้วยตนเองก่อนที่จะรันสคริปต์การติดตั้ง ไม่เช่นนั้นสคริปต์จะล้มเหลว (ดู #1782)
หากคุณได้รับคำ nvm: command not found
หลังจากรันสคริปต์การติดตั้ง สาเหตุข้อใดข้อหนึ่งต่อไปนี้อาจเป็นสาเหตุ:
ตั้งแต่ macOS 10.15 เชลล์เริ่มต้นคือ zsh
และ nvm จะค้นหา .zshrc
เพื่ออัปเดต แต่ไม่มีการติดตั้งตามค่าเริ่มต้น สร้างหนึ่งรายการด้วย touch ~/.zshrc
และเรียกใช้สคริปต์การติดตั้งอีกครั้ง
หากคุณใช้ bash ซึ่งเป็นเชลล์เริ่มต้นก่อนหน้า ระบบของคุณอาจไม่มีไฟล์ .bash_profile
หรือ .bashrc
ที่ได้ตั้งค่าคำสั่งไว้ สร้างหนึ่งในนั้นด้วย touch ~/.bash_profile
หรือ touch ~/.bashrc
แล้วรันสคริปต์การติดตั้งอีกครั้ง จากนั้น . ~/.bash_profile
หรือ . ~/.bashrc
เพื่อรับคำสั่ง nvm
คุณเคยใช้ bash
มาก่อน แต่คุณได้ติดตั้ง zsh
แล้ว คุณต้องเพิ่มบรรทัดเหล่านี้ด้วยตนเองใน ~/.zshrc
และเรียก . ~/.zshrc
.
คุณอาจต้องรีสตาร์ทอินสแตนซ์เทอร์มินัลของคุณหรือเรียกใช้ . ~/.nvm/nvm.sh
การรีสตาร์ทเทอร์มินัล/เปิดแท็บ/หน้าต่างใหม่ หรือการรันคำสั่งต้นทางจะเป็นการโหลดคำสั่งและการกำหนดค่าใหม่
หากวิธีการข้างต้นไม่ได้ผล คุณอาจต้องรีสตาร์ทอินสแตนซ์เทอร์มินัลของคุณ ลองเปิดแท็บ/หน้าต่างใหม่ในเทอร์มินัลของคุณแล้วลองอีกครั้ง
หากวิธีการข้างต้นไม่สามารถแก้ปัญหาได้ คุณอาจลองดำเนินการดังต่อไปนี้:
หากคุณใช้ bash อาจเป็นไปได้ว่า .bash_profile
ของคุณ (หรือ ~/.profile
) ไม่ได้มาจาก ~/.bashrc
ของคุณอย่างถูกต้อง คุณสามารถแก้ไขได้โดยเพิ่ม source ~/
ลงไปหรือทำตามขั้นตอนถัดไปด้านล่าง
ลองเพิ่มข้อมูลโค้ดจากส่วนการติดตั้ง ซึ่งจะค้นหาไดเร็กทอรี nvm ที่ถูกต้องและโหลด nvm ไปยังโปรไฟล์ปกติของคุณ ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
หรือ ~/.bashrc
)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้และวิธีแก้ปัญหาที่เป็นไปได้ โปรดดูที่นี่
หมายเหตุ สำหรับ Mac ที่ใช้ชิป Apple Silicon โหนดเริ่มเสนอแพ็คเกจ arm64 arch Darwin ตั้งแต่เวอร์ชัน 16.0.0 และรองรับ arm64 รุ่นทดลองเมื่อคอมไพล์จากแหล่งที่มาตั้งแต่เวอร์ชัน 14.17.0 หากคุณกำลังประสบปัญหาในการติดตั้งโหนดโดยใช้ nvm
คุณอาจต้องการอัปเดตเป็นเวอร์ชันใดเวอร์ชันหนึ่งหรือใหม่กว่า
คุณสามารถใช้งาน:
- ชื่อ: ติดตั้ง nvm ansible.builtin.shell: > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | ทุบตี args: สร้าง: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
หากต้องการตรวจสอบว่ามีการติดตั้ง nvm แล้ว ให้ทำดังนี้
คำสั่ง -v nvm
ซึ่งควรส่งออก nvm
หากการติดตั้งสำเร็จ โปรดทราบว่า which nvm
จะไม่ทำงาน เนื่องจาก nvm
เป็นฟังก์ชันเชลล์ที่มาจากแหล่งที่มา ไม่ใช่ไบนารีที่ปฏิบัติการได้
หมายเหตุ: บน Linux หลังจากรันสคริปต์การติดตั้ง หากคุณได้รับคำ nvm: command not found
หรือไม่เห็นผลตอบรับจากเทอร์มินัลของคุณหลังจากที่คุณพิมพ์ command -v nvm
เพียงปิดเทอร์มินัลปัจจุบันของคุณ เปิดเทอร์มินัลใหม่ แล้วลองตรวจสอบอีกครั้ง
หากคุณใช้ระบบที่ไม่มีไบนารี่แบบแพ็กเกจล่วงหน้า ซึ่งหมายความว่าคุณจะต้องติดตั้งโหนดหรือ io.js จากซอร์สโค้ด คุณต้องตรวจสอบให้แน่ใจว่าระบบของคุณมีคอมไพเลอร์ C++ สำหรับ OS X นั้น Xcode จะใช้งานได้ สำหรับ GNU/Linux ที่ใช้ Debian/Ubuntu แพ็คเกจ build-essential
และ libssl-dev
จะทำงาน
หมายเหตุ: nvm
ยังรองรับ Windows ในบางกรณี ควรทำงานผ่าน WSL (ระบบย่อย Windows สำหรับ Linux) ขึ้นอยู่กับเวอร์ชันของ WSL นอกจากนี้ยังควรทำงานร่วมกับ GitBash (MSYS) หรือ Cygwin มิฉะนั้น สำหรับ Windows จะมีทางเลือกสองสามทางที่เราไม่สนับสนุนหรือพัฒนาโดย:
nvm-windows
พยักหน้า
nvs
หมายเหตุ: nvm
ไม่รองรับ Fish เช่นกัน (ดู #303) มีทางเลือกอื่นอยู่ ซึ่งไม่ได้รับการสนับสนุนหรือพัฒนาโดยเรา:
เบสช่วยให้คุณใช้ยูทิลิตี้ที่เขียนขึ้นสำหรับ Bash ในเปลือกปลา
fast-nvm-fish ใช้งานได้กับหมายเลขเวอร์ชันเท่านั้น (ไม่ใช่นามแฝง) แต่ไม่ทำให้การเริ่มต้นเชลล์ของคุณช้าลงอย่างมาก
Plugin-nvm ปลั๊กอินสำหรับ Oh My Fish ซึ่งทำให้ nvm และความสำเร็จของมันพร้อมใช้งานในเปลือกปลา
fnm - โปรแกรมจัดการเวอร์ชันสำหรับชาวประมงสำหรับปลา
fish-nvm - Wrapper รอบ nvm สำหรับปลา ชะลอการจัดหา nvm จนกว่าจะมีการใช้งานจริง
หมายเหตุ: เรายังคงประสบปัญหาบางอย่างกับ FreeBSD เนื่องจากไม่มีไบนารีที่สร้างไว้ล่วงหน้าอย่างเป็นทางการสำหรับ FreeBSD และการสร้างจากแหล่งที่มาอาจจำเป็นต้องมีแพตช์ ดูตั๋วปัญหา:
[#900] โหนด [Bug] บน FreeBSD อาจจำเป็นต้องได้รับการแก้ไข
nodejs/โหนด#3716
หมายเหตุ: บน OS X หากคุณไม่ได้ติดตั้ง Xcode และคุณไม่ต้องการดาวน์โหลดไฟล์ ~4.3GB คุณสามารถติดตั้ง Command Line Tools
ได้ คุณสามารถตรวจสอบโพสต์บนบล็อกนี้เกี่ยวกับวิธีการ:
วิธีการติดตั้งเครื่องมือบรรทัดคำสั่งใน OS X Mavericks & Yosemite (ไม่มี Xcode)
หมายเหตุ: บน OS X หากคุณมี/มีโหนด "ระบบ" ติดตั้งอยู่และต้องการติดตั้งโมดูลทั่วโลก โปรดทราบว่า:
เมื่อใช้ nvm
คุณไม่จำเป็นต้อง sudo
ติดตั้งโมดูลทั่วโลกด้วย npm -g
ดังนั้นแทนที่จะทำ sudo npm install -g grunt
ให้ทำแทน npm install -g grunt
หากคุณมีไฟล์ ~/.npmrc
ตรวจสอบให้แน่ใจว่าไม่มีการตั้งค่า prefix
ใด ๆ (ซึ่งเข้ากันไม่ได้กับ nvm
)
คุณสามารถ (แต่ไม่ควร?) เก็บการติดตั้งโหนด "ระบบ" ก่อนหน้าของคุณไว้ แต่ nvm
จะใช้ได้กับบัญชีผู้ใช้ของคุณเท่านั้น (บัญชีที่ใช้ในการติดตั้ง nvm) นี่อาจทำให้เวอร์ชันไม่ตรงกัน เนื่องจากผู้ใช้รายอื่นจะใช้ /usr/local/lib/node_modules/*
VS บัญชีผู้ใช้ของคุณโดยใช้ ~/.nvm/versions/node/vX.XX/lib/node_modules/*
ไม่รองรับการติดตั้ง Homebrew หากคุณมีปัญหากับ nvm
ที่ติดตั้ง homebrew โปรด brew uninstall
และติดตั้งโดยใช้คำแนะนำด้านล่างก่อนที่จะยื่นเรื่อง
หมายเหตุ: หากคุณใช้ zsh
คุณสามารถติดตั้ง nvm
เป็นปลั๊กอิน zsh ได้อย่างง่ายดาย ติดตั้ง zsh-nvm
และรัน nvm upgrade
เพื่ออัปเกรด
หมายเหตุ: Git เวอร์ชันก่อน v1.7 อาจประสบปัญหาในการโคลนแหล่งที่มา nvm
จาก GitHub ผ่านโปรโตคอล https และยังมีพฤติกรรมที่แตกต่างกันของ git ก่อน v1.6 และ git ก่อน v1.17.10 ไม่สามารถโคลนแท็กได้ ดังนั้นขั้นต่ำสุด เวอร์ชัน git ที่ต้องการคือ v1.7.10 หากคุณสนใจปัญหาที่เรากล่าวถึงที่นี่ โปรดดูบทความข้อผิดพลาดในการโคลน HTTPS ของ GitHub
หากคุณติดตั้ง git
ไว้ (ต้องใช้ git v1.7.10+):
โคลน repo นี้ในรูทของโปรไฟล์ผู้ใช้ของคุณ
cd ~/
จากที่ใดก็ได้จากนั้น git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
และตรวจสอบเวอร์ชันล่าสุดด้วย git checkout v0.40.1
เปิดใช้งาน nvm
โดยการจัดหาจากเชลล์ของคุณ: . ./nvm.sh
ตอนนี้เพิ่มบรรทัดเหล่านี้ในไฟล์ ~/.bashrc
, ~/.profile
หรือ ~/.zshrc
เพื่อให้แหล่งที่มาโดยอัตโนมัติเมื่อเข้าสู่ระบบ: (คุณอาจต้องเพิ่มไฟล์ข้างต้นมากกว่าหนึ่งไฟล์)
ส่งออก NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # สิ่งนี้จะโหลด nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # สิ่งนี้จะโหลด nvm bash_completion
สำหรับการติดตั้งด้วยตนเองโดยสมบูรณ์ ให้ดำเนินการบรรทัดต่อไปนี้เพื่อโคลนที่เก็บ nvm
ลงใน $HOME/.nvm
ก่อน จากนั้นจึงโหลด nvm
:
ส่งออก NVM_DIR="$HOME/.nvm" && ( โคลนคอมไพล์ https://github.com/nvm-sh/nvm.git "$NVM_DIR" ซีดี "$NVM_DIR" git checkout `git อธิบาย --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
ตอนนี้เพิ่มบรรทัดเหล่านี้ในไฟล์ ~/.bashrc
, ~/.profile
หรือ ~/.zshrc
เพื่อให้แหล่งที่มาโดยอัตโนมัติเมื่อเข้าสู่ระบบ: (คุณอาจต้องเพิ่มไฟล์ข้างต้นมากกว่าหนึ่งไฟล์)
ส่งออก NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # สิ่งนี้จะโหลด nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # สิ่งนี้จะโหลด nvm bash_completion
สำหรับการอัปเกรดด้วยตนเองด้วย git
(ต้องใช้ git v1.7.10+):
เปลี่ยนเป็น $NVM_DIR
ดึงการเปลี่ยนแปลงล่าสุดลงมา
ตรวจสอบเวอร์ชันล่าสุด
เปิดใช้งานเวอร์ชันใหม่
( ซีดี "$NVM_DIR" git fetch --กำเนิดแท็ก git checkout `git อธิบาย --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
หากต้องการดาวน์โหลด คอมไพล์ และติดตั้งโหนดรุ่นล่าสุด ให้ทำดังนี้:
nvm install node # "node" เป็นนามแฝงสำหรับเวอร์ชันล่าสุด
หากต้องการติดตั้งโหนดเวอร์ชันเฉพาะ:
ติดตั้ง nvm 14.7.0 # หรือ 16.3.0, 12.22.1 เป็นต้น
หากต้องการตั้งชื่อแทน:
นามแฝง nvm my_alias v14.4.0
ตรวจสอบให้แน่ใจว่านามแฝงของคุณไม่มีการเว้นวรรคหรือเครื่องหมายทับ
เวอร์ชันแรกที่ติดตั้งจะกลายเป็นค่าเริ่มต้น เชลล์ใหม่จะเริ่มต้นด้วยเวอร์ชันเริ่มต้นของโหนด (เช่น nvm alias default
)
คุณสามารถแสดงรายการเวอร์ชันที่มีอยู่ได้โดยใช้ ls-remote
:
nvm ls-ระยะไกล
จากนั้นในเชลล์ใหม่ให้ใช้เวอร์ชันที่ติดตั้ง:
nvm ใช้โหนด
หรือคุณสามารถเรียกใช้:
โหนดรัน nvm --version
หรือคุณสามารถรันคำสั่งใดก็ได้ในเชลล์ย่อยด้วยโหนดเวอร์ชันที่ต้องการ:
โหนด nvm exec 4.2 --version
คุณยังสามารถรับเส้นทางไปยังไฟล์ปฏิบัติการไปยังตำแหน่งที่ติดตั้งได้:
nvm ซึ่ง 12.22
แทนที่ตัวชี้เวอร์ชันเช่น "14.7" หรือ "16.3" หรือ "12.22.1" คุณสามารถใช้นามแฝงเริ่มต้นพิเศษต่อไปนี้กับ nvm install
, nvm use
, nvm run
, nvm exec
, nvm which
ฯลฯ:
node
: สิ่งนี้จะติดตั้ง node
เวอร์ชันล่าสุด
iojs
: สิ่งนี้จะติดตั้ง io.js
เวอร์ชันล่าสุด
stable
: นามแฝงนี้เลิกใช้แล้ว และใช้ได้กับ node
v0.12
และเวอร์ชันก่อนหน้าเท่านั้น ปัจจุบันนี้เป็นนามแฝงสำหรับ node
unstable
: นามแฝงนี้ชี้ไปที่ node
v0.11
- การเปิดตัวโหนด "ไม่เสถียร" ล่าสุดตั้งแต่หลัง 1.0 เวอร์ชันโหนดทั้งหมดจะเสถียร (ใน SemVer เวอร์ชันจะสื่อสารถึงการแตกหัก ไม่ใช่ความเสถียร)
โหนดมีกำหนดการสำหรับการสนับสนุนระยะยาว (LTS) คุณสามารถอ้างอิงเวอร์ชัน LTS ในนามแฝงและไฟล์ .nvmrc
ด้วยสัญลักษณ์ lts/*
สำหรับ LTS ล่าสุด และ lts/argon
สำหรับ LTS ที่เผยแพร่จากบรรทัด "argon" เป็นต้น . นอกจากนี้ คำสั่งต่อไปนี้ยังรองรับอาร์กิวเมนต์ LTS:
nvm install --lts
/ nvm install --lts=argon
/ nvm install 'lts/*'
/ nvm install lts/argon
nvm uninstall --lts
/ nvm uninstall --lts=argon
/ nvm uninstall 'lts/*'
/ nvm uninstall lts/argon
nvm use --lts
/ nvm use --lts=argon
/ nvm use 'lts/*'
/ nvm use lts/argon
nvm exec --lts
/ nvm exec --lts=argon
/ nvm exec 'lts/*'
/ nvm exec lts/argon
nvm run --lts
/ nvm run --lts=argon
/ nvm run 'lts/*'
/ nvm run lts/argon
nvm ls-remote --lts
/ nvm ls-remote --lts=argon
nvm ls-remote 'lts/*'
/ nvm ls-remote lts/argon
nvm version-remote --lts
/ nvm version-remote --lts=argon
/ nvm version-remote 'lts/*'
/ nvm version-remote lts/argon
ทุกครั้งที่สำเนา nvm
ในเครื่องของคุณเชื่อมต่อกับ https://nodejs.org จะสร้างนามแฝงท้องถิ่นที่เหมาะสมสำหรับบรรทัด LTS ที่มีอยู่ทั้งหมดอีกครั้ง นามแฝงเหล่านี้ (เก็บไว้ภายใต้ $NVM_DIR/alias/lts
) ได้รับการจัดการโดย nvm
และคุณไม่ควรแก้ไข ลบ หรือสร้างไฟล์เหล่านี้ - คาดว่าการเปลี่ยนแปลงของคุณจะถูกยกเลิก และคาดว่าจะเข้าไปยุ่งกับไฟล์เหล่านี้เพื่อทำให้เกิดข้อบกพร่องที่อาจเป็นไปได้ ไม่ได้รับการสนับสนุน
หากต้องการรับโหนดเวอร์ชัน LTS ล่าสุดและย้ายแพ็คเกจที่ติดตั้งที่มีอยู่ ให้ใช้
การติดตั้ง nvm --reinstall-packages-from=current 'lts/*'
หากคุณต้องการติดตั้ง Node.js เวอร์ชันใหม่และย้ายแพ็คเกจ npm จากเวอร์ชันก่อนหน้า:
ติดตั้ง nvm --reinstall-packages-from=node node
ขั้นแรกจะใช้ "โหนดเวอร์ชัน nvm" เพื่อระบุเวอร์ชันปัจจุบันที่คุณกำลังย้ายแพ็กเกจมา จากนั้นจะแก้ไขเวอร์ชันใหม่เพื่อติดตั้งจากเซิร์ฟเวอร์ระยะไกลและติดตั้ง สุดท้ายนี้จะรัน "nvm reinstall-packages" เพื่อติดตั้งแพ็คเกจ npm ใหม่จาก Node เวอร์ชันก่อนหน้าของคุณไปเป็นเวอร์ชันใหม่
คุณยังสามารถติดตั้งและย้ายแพ็คเกจ npm จาก Node เวอร์ชันเฉพาะได้ดังนี้:
ติดตั้ง nvm --reinstall-packages-from=5 6 การติดตั้ง nvm --reinstall-packages-from=iojs v4.2
โปรดทราบว่าการติดตั้งแพ็กเกจใหม่ อย่างชัดเจนไม่ได้อัปเดตเวอร์ชัน npm - เพื่อให้แน่ใจว่า npm จะไม่อัปเกรดเป็นเวอร์ชันที่เสียหายสำหรับเวอร์ชันโหนดใหม่โดยไม่ได้ตั้งใจ
หากต้องการอัปเดต npm ในเวลาเดียวกัน ให้เพิ่มแฟล็ก --latest-npm
ดังนี้:
การติดตั้ง nvm --reinstall-packages-from=default --latest-npm 'lts/*'
หรือคุณสามารถรันคำสั่งต่อไปนี้เพื่อรับเวอร์ชัน npm ที่รองรับล่าสุดบนเวอร์ชันโหนดปัจจุบันได้ตลอดเวลา:
ติดตั้ง nvm-ล่าสุด-npm
หากคุณได้รับข้อผิดพลาดเกี่ยวกับผลกระทบของ "npm ไม่รองรับ Node.js" คุณจะต้อง (1) เปลี่ยนกลับเป็นเวอร์ชันโหนดก่อนหน้า ( nvm ls
& nvm use
), (2) ลบเวอร์ชันโหนดที่สร้างขึ้นใหม่ ( nvm uninstall
) จากนั้น (3) รัน nvm install
ของคุณอีกครั้งด้วยแฟล็ก --latest-npm
หากคุณมีรายการแพ็คเกจเริ่มต้นที่คุณต้องการติดตั้งทุกครั้งที่คุณติดตั้งเวอร์ชันใหม่ เราก็รองรับเช่นกัน เพียงเพิ่มชื่อแพ็คเกจหนึ่งชื่อต่อบรรทัดลงในไฟล์ $NVM_DIR/default-packages
คุณสามารถเพิ่มอะไรก็ได้ที่ npm จะยอมรับเป็นอาร์กิวเมนต์แพ็คเกจบนบรรทัดคำสั่ง
# $NVM_DIR/default-packagesrimraf วัตถุ[email protected] สตีเวเมา/แผ่นซ้าย
หากคุณต้องการติดตั้ง io.js:
ติดตั้ง iojs nvm
หากคุณต้องการติดตั้ง io.js เวอร์ชันใหม่และย้ายแพ็กเกจ npm จากเวอร์ชันก่อนหน้า:
ติดตั้ง nvm --reinstall-packages-from=iojs iojs
แนวทางเดียวกันที่กล่าวถึงสำหรับการย้ายแพ็กเกจ npm ในโหนดใช้ได้กับ io.js
หากคุณต้องการใช้โหนดเวอร์ชันที่ระบบติดตั้ง คุณสามารถใช้นามแฝงเริ่มต้นพิเศษ "system" ได้:
ระบบการใช้งาน NVM ระบบรัน nvm --version
หากคุณต้องการดูว่ามีการติดตั้งเวอร์ชันใด:
nvm ls
หากคุณต้องการดูว่ามีเวอร์ชันใดบ้างให้ติดตั้ง:
nvm ls-ระยะไกล
คุณสามารถตั้งค่าสีได้ห้าสีที่จะใช้เพื่อแสดงข้อมูลเวอร์ชันและนามแฝง สีเหล่านี้จะแทนที่สีเริ่มต้น สีเริ่มต้นคือ: gbyre
รหัสสี:
r/R = red / bold red g/G = green / bold green b/B = blue / bold blue c/C = cyan / bold cyan m/M = magenta / bold magenta y/Y = yellow / bold yellow k/K = black / bold black e/W = light grey / white
nvm ชุดสี rgBcm
หากคุณต้องการให้สีที่กำหนดเองคงอยู่หลังจากสิ้นสุดเชลล์ ให้ส่งออกตัวแปร NVM_COLORS
ในโปรไฟล์เชลล์ของคุณ ตัวอย่างเช่น หากคุณต้องการใช้สีฟ้า สีม่วงแดง สีเขียว สีแดงเข้ม และสีเหลืองตัวหนา ให้เพิ่มบรรทัดต่อไปนี้:
ส่งออก NVM_COLORS='cmgRY'
nvm help (or -h or --help)
, nvm ls
, nvm ls-remote
และ nvm alias
มักจะสร้างเอาต์พุตที่เป็นสี คุณสามารถปิดการใช้งานสีด้วยตัวเลือก --no-colors
(หรือโดยการตั้งค่าตัวแปรสภาพแวดล้อม TERM=dumb
):
nvm ls --ไม่มีสี ความช่วยเหลือ nvm --no-colors TERM=โง่ nvm ls
หากต้องการคืนค่า PATH คุณสามารถปิดการใช้งานได้:
ปิดการใช้งาน nvm
หากต้องการตั้งค่าเวอร์ชันโหนดเริ่มต้นเพื่อใช้ในเชลล์ใหม่ ให้ใช้นามแฝง 'default':
โหนดเริ่มต้น nvm alias # นี่อ้างอิงถึงเวอร์ชันที่ติดตั้งล่าสุดของ nodenvm alias เริ่มต้น 18 # นี่หมายถึงเวอร์ชัน v18.x ที่ติดตั้งล่าสุดของ nodenvm alias เริ่มต้น 18.12 # นี่หมายถึงเวอร์ชัน v18.12.x ที่ติดตั้งล่าสุด ของโหนด
หากต้องการใช้มิเรอร์ของโหนดไบนารี ให้ตั้งค่า $NVM_NODEJS_ORG_MIRROR
:
ส่งออก NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist โหนดการติดตั้ง nvm NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist ติดตั้ง nvm 4.2
หากต้องการใช้มิเรอร์ของไบนารี io.js ให้ตั้งค่า $NVM_IOJS_ORG_MIRROR
:
ส่งออก NVM_IOJS_ORG_MIRROR=https://iojs.org/dist ติดตั้ง nvm iojs-v1.0.3 NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm ติดตั้ง iojs-v1.0.3
ตามค่าเริ่มต้น nvm use
จะไม่สร้างลิงก์สัญลักษณ์ "ปัจจุบัน" ตั้งค่า $NVM_SYMLINK_CURRENT
เป็น "true" เพื่อเปิดใช้งานลักษณะการทำงานนี้ ซึ่งบางครั้งอาจมีประโยชน์สำหรับ IDE โปรดทราบว่าการใช้ nvm
ในแท็บเชลล์หลายแท็บโดยเปิดใช้งานตัวแปรสภาพแวดล้อมนี้อาจทำให้เกิดสภาวะการแข่งขันได้
หากต้องการส่งส่วนหัวการอนุญาตผ่านไปยัง URL ของมิเรอร์ ให้ตั้งค่า $NVM_AUTH_HEADER
NVM_AUTH_HEADER="Bearer Secret-token" โหนดการติดตั้ง nvm
คุณสามารถสร้างไฟล์ .nvmrc
ที่มีหมายเลขเวอร์ชันของโหนด (หรือสตริงอื่นๆ ที่ nvm
เข้าใจ โปรดดูรายละเอียด nvm --help
) ในไดเร็กทอรีรากของโปรเจ็กต์ (หรือไดเร็กทอรีพาเรนต์) หลังจากนั้น nvm use
, nvm install
, nvm exec
, nvm run
และ nvm which
จะใช้เวอร์ชันที่ระบุในไฟล์ .nvmrc
หากไม่มีเวอร์ชันระบุไว้ในบรรทัดคำสั่ง
ตัวอย่างเช่น หากต้องการกำหนดให้ nvm เป็นค่าเริ่มต้นเป็นเวอร์ชัน 5.9 ล่าสุด เวอร์ชัน LTS ล่าสุด หรือเวอร์ชันโหนดล่าสุดสำหรับไดเร็กทอรีปัจจุบัน:
$ เสียงสะท้อน "5.9" > .nvmrc $ echo "lts/*" > .nvmrc # เป็นค่าเริ่มต้นเป็นเวอร์ชัน LTS ล่าสุด$ echo "node" > .nvmrc # เป็นค่าเริ่มต้นเป็นเวอร์ชันล่าสุด
[หมายเหตุ ตัวอย่างเหล่านี้ถือว่า echo
เวอร์ชันเชลล์ที่สอดคล้องกับ POSIX หากคุณใช้สภาพแวดล้อมการพัฒนา Windows cmd
เช่น ไฟล์ . .nvmrc
ถูกใช้เพื่อกำหนดค่าการใช้งาน Linux ระยะไกล โปรดจำไว้ว่า "
จะถูกคัดลอกซึ่งนำไปสู่ไฟล์ที่ไม่ถูกต้อง ลบออก]
จากนั้นเมื่อคุณรัน nvm ให้ใช้:
ใช้ $nvm พบ '/path/to/project/.nvmrc' ด้วยเวอร์ชัน <5.9>ตอนนี้ใช้โหนด v5.9.1 (npm v3.7.3)
การเรียกใช้การติดตั้ง nvm จะสลับไปยังเวอร์ชันที่ถูกต้องด้วย แต่หากยังไม่ได้ติดตั้งเวอร์ชันโหนดที่ถูกต้อง ระบบจะทำการติดตั้งให้คุณ
ติดตั้ง $nvm พบ '/path/to/project/.nvmrc' ด้วยเวอร์ชัน <5.9>กำลังดาวน์โหลดและติดตั้งโหนด v5.9.1... กำลังดาวน์โหลด https://nodejs.org/dist/v5.9.1/node-v5.9.1-linux-x64.tar.xz...################### ################################################### ############### 100.0% การตรวจสอบการคำนวณด้วย sha256sum เช็คซัมตรงกัน! ตอนนี้ใช้โหนด v5.9.1 (npm v3.7.3)
nvm use
ฯลฯ อัล จะสำรวจโครงสร้างไดเร็กทอรีขึ้นไปจากไดเร็กทอรีปัจจุบันที่กำลังมองหาไฟล์ .nvmrc
กล่าวอีกนัยหนึ่ง การรัน nvm use
et อัล ในไดเร็กทอรีย่อยใดๆ ของไดเร็กทอรีที่มี .nvmrc
จะส่งผลให้มีการใช้งาน .nvmrc
ดังกล่าว
เนื้อหาของไฟล์ .nvmrc
จะต้อง มี
หนึ่งรายการ (ตามที่อธิบายโดย nvm --help
) ตามด้วยการขึ้นบรรทัดใหม่ ไฟล์ .nvmrc
อาจมีความคิดเห็นด้วย ตัวคั่นความคิดเห็นคือ #
และข้อความใดๆ ที่ตามมา รวมถึงบรรทัดว่าง และช่องว่างนำหน้าและต่อท้าย จะถูกละเว้นเมื่อแยกวิเคราะห์
คู่คีย์/ค่าที่ใช้ =
ยังได้รับอนุญาตและละเว้น แต่สงวนไว้สำหรับการใช้งานในอนาคต และอาจทำให้เกิดข้อผิดพลาดในการตรวจสอบความถูกต้องในอนาคต
เรียกใช้ npx nvmrc
เพื่อตรวจสอบไฟล์ .nvmrc
หากผลลัพธ์ของเครื่องมือนั้นไม่สอดคล้องกับ nvm แสดงว่าอย่างใดอย่างหนึ่งมีข้อบกพร่อง - โปรดแจ้งปัญหา
คุณสามารถใช้ avn
เพื่อรวมเข้ากับเชลล์ของคุณอย่างลึกซึ้ง และเรียกใช้ nvm
โดยอัตโนมัติเมื่อเปลี่ยนไดเร็กทอรี avn
ไม่ได้ รับการสนับสนุนโดยผู้ดูแล nvm
กรุณารายงานปัญหาไปยังทีม avn
คุณยังสามารถใช้ nvshim
เพื่อชิม node
, npm
และ npx
bins เพื่อใช้การกำหนดค่า nvm
ในไดเร็กทอรีปัจจุบันโดยอัตโนมัติ nvshim
ไม่ได้ รับการสนับสนุนโดยผู้ดูแล nvm
กรุณารายงานปัญหาไปยังทีม nvshim
หากคุณต้องการโซลูชันที่มีน้ำหนักเบากว่า ผู้ใช้ nvm
เป็นผู้จัดทำสูตรอาหารด้านล่างนี้ ไม่ได้ รับการสนับสนุนโดยผู้ดูแล nvm
อย่างไรก็ตาม เรายอมรับคำขอดึงเพื่อดูตัวอย่างเพิ่มเติม
nvm use
โดยอัตโนมัติในไดเร็กทอรีที่มีไฟล์ .nvmrc
ในโปรไฟล์ของคุณ ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
หรือ ~/.bashrc
) ให้เพิ่มสิ่งต่อไปนี้เพื่อ nvm use
ทุกครั้งที่คุณป้อนไดเร็กทอรีใหม่:
ใส่สิ่งต่อไปนี้ไว้ท้าย $HOME/.bashrc
:
cdnvm() { คำสั่ง cd "$@" || ส่งคืน $? nvm_path="$(nvm_find_up .nvmrc | command tr -d 'n')" # หากไม่มีไฟล์ .nvmrc ให้ใช้เวอร์ชัน nvm เริ่มต้นหาก [[ ! $nvm_path = *[^[:space:]]* ]]; จากนั้นประกาศ default_version default_version="$(nvm version default)" # หากไม่มีเวอร์ชันเริ่มต้น ให้ตั้งค่าเป็น `node` # ซึ่งจะใช้เวอร์ชันล่าสุดบนเครื่องของคุณหาก [ $default_version = 'N/A' ]; แล้ว โหนดดีฟอลต์นามแฝง nvm default_version=$(nvm version default) fi # หากเวอร์ชันปัจจุบันไม่ใช่เวอร์ชันเริ่มต้น ให้ตั้งค่าให้ใช้เวอร์ชันเริ่มต้นหาก [ "$(nvm current)" != "${default_version}" ]; แล้ว nvm ใช้ค่าเริ่มต้น fi elif [[ -s "${nvm_path}/.nvmrc" && -r "${nvm_path}/.nvmrc" ]]; จากนั้นประกาศ nvm_version nvm_version=$(<"${nvm_path}"/.nvmrc) ประกาศ locally_resolved_nvm_version # `nvm ls` จะตรวจสอบเวอร์ชันที่มีอยู่ในเครื่องทั้งหมด # หากมีเวอร์ชันที่ตรงกันหลายเวอร์ชัน ให้ใช้เวอร์ชันล่าสุด # ลบ `->` และ ` *` อักขระและการเว้นวรรค # `locally_resolved_nvm_version` จะเป็น `N/A` หากไม่พบเวอร์ชันในเครื่อง locally_resolved_nvm_version=$(nvm ls --no-colors "${nvm_version}" | command tail -1 | command tr -d '->*' | command tr -d '[:space:]') # ถ้าเป็น ยังไม่ได้ติดตั้ง ให้ติดตั้ง # `การติดตั้ง nvm` จะใช้เวอร์ชันที่ติดตั้งใหม่โดยปริยายหาก [ "${locally_resolved_nvm_version}" = 'N/A' ]; แล้ว ติดตั้ง nvm "${nvm_version}"; elif [ "$(nvm ปัจจุบัน)" != "${locally_resolved_nvm_version}" ]; แล้ว nvm ใช้ "${nvm_version}"; fi fi}นามแฝง cd='cdnvm'cdnvm "$PWD" || ออก
นามแฝงนี้จะค้นหา 'up' จากไดเร็กทอรีปัจจุบันของคุณเพื่อตรวจหาไฟล์ .nvmrc
หากพบก็จะเปลี่ยนเป็นเวอร์ชันนั้น ถ้าไม่เช่นนั้นก็จะใช้เวอร์ชันเริ่มต้น
ฟังก์ชันเชลล์นี้จะติดตั้ง (หากจำเป็น) และ nvm use
เวอร์ชันของโหนดที่ระบุเมื่อพบ .nvmrc
และ nvm use default
เป็นอย่างอื่น
ใส่สิ่งนี้ลงใน $HOME/.zshrc
ของคุณเพื่อเรียก nvm use
โดยอัตโนมัติทุกครั้งที่คุณเข้าสู่ไดเร็กทอรีที่มีไฟล์ .nvmrc
พร้อมด้วยสตริงที่บอก nvm ว่าโหนดใดที่จะ use
:
# วางสิ่งนี้หลังจากการกำหนดค่าเริ่มต้น nvm!autoload -U add-zsh-hookload-nvmrc() { local nvmrc_path nvmrc_path="$(nvm_find_nvmrc)" ถ้า [ -n "$nvmrc_path" ]; จากนั้น nvmrc_node_version ในเครื่อง nvmrc_node_version=$(เวอร์ชัน nvm "$(cat "${nvmrc_path}")") ถ้า [ "$nvmrc_node_version" = "N/A" ]; แล้ว ติดตั้ง nvm elif [ "$nvmrc_node_version" != "$(เวอร์ชัน nvm)" ]; แล้ว nvm ใช้ fi elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(เวอร์ชัน nvm)" != "$(ค่าเริ่มต้นของเวอร์ชัน nvm)" ]; จากนั้นก้อง "การเปลี่ยนกลับเป็นเวอร์ชันเริ่มต้นของ nvm" nvm ใช้ fi เริ่มต้น} เพิ่ม-zsh-hook chpwd โหลด-nvmrc โหลด-nvmrc
โดยคุณจะต้องติดตั้งเบสไว้ด้วย
# ~/.config/fish/functions/nvm.fishfunction nvm แหล่งเสียงเบส ~/.nvm/nvm.sh --no-use ';' nvm $argvend# ~/.config/fish/functions/nvm_find_nvmrc.fishfunction nvm_find_nvmrc แหล่งเสียงเบส ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrcend# ~/.config/fish/functions/load_nvm.fishfunction load_nvm --on-variable="PWD" set -l default_node_version (ค่าเริ่มต้นของเวอร์ชัน nvm) set -l node_version (เวอร์ชัน nvm) set -l nvmrc_path (nvm_find_nvmrc) หากทดสอบ -n "$nvmrc_path" set -l nvmrc_node_version (เวอร์ชัน nvm (cat $nvmrc_path)) หากทดสอบ "$nvmrc_node_version" = "N/A" ติดตั้ง nvm (cat $nvmrc_path) อย่างอื่นถ้าทดสอบ "$nvmrc_node_version" != "$node_version" nvm ใช้ $nvmrc_node_version end else หากทดสอบ "$node_version" != "$default_node_version" echo "การเปลี่ยนกลับเป็นเวอร์ชันโหนดเริ่มต้น" nvm ใช้ค่าเริ่มต้น endend# ~/.config/fish/config.fish# คุณต้องเรียกมันเมื่อเริ่มต้น มิฉะนั้นการฟังการสลับไดเรกทอรีจะไม่ workload_nvm > /dev/stderr
การทดสอบเขียนด้วยภาษา Urchin ติดตั้ง Urchin (และการอ้างอิงอื่น ๆ ) ดังนี้:
npm install
มีการทดสอบที่ช้าและการทดสอบที่รวดเร็ว การทดสอบที่ช้าจะทำสิ่งต่างๆ เช่น การติดตั้งโหนด และตรวจสอบว่ามีการใช้เวอร์ชันที่ถูกต้องหรือไม่ การทดสอบอย่างรวดเร็วเป็นการปลอมแปลงสิ่งนี้เพื่อทดสอบสิ่งต่างๆ เช่น นามแฝงและการถอนการติดตั้ง จากรูทของที่เก็บ nvm git ให้รันการทดสอบอย่างรวดเร็วดังนี้:
npm run test/fast
รันการทดสอบช้าดังนี้:
npm run test/slow
รันการทดสอบทั้งหมดดังนี้:
npm test
ข้อดี: หลีกเลี่ยงการรัน nvm ในขณะที่การทดสอบกำลังทำงานอยู่
nvm เปิดเผยตัวแปรสภาพแวดล้อมต่อไปนี้:
NVM_DIR
- ไดเร็กทอรีการติดตั้งของ nvm
NVM_BIN
- โดยที่โหนด, npm และแพ็กเกจโกลบอลสำหรับเวอร์ชันที่ใช้งานอยู่ของโหนดได้รับการติดตั้ง
NVM_INC
- ไดเร็กทอรีไฟล์รวมของโหนด (มีประโยชน์สำหรับการสร้างส่วนเสริม C/C++ สำหรับโหนด)
NVM_CD_FLAGS
- ใช้เพื่อรักษาความเข้ากันได้กับ zsh
NVM_RC_VERSION
- เวอร์ชันจากไฟล์ .nvmrc หากใช้งาน
นอกจากนี้ nvm จะแก้ไข PATH
และหากมี MANPATH
และ NODE_PATH
เมื่อเปลี่ยนเวอร์ชัน
หากต้องการเปิดใช้งาน คุณจะต้องแหล่งที่มา bash_completion
:
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
วางบรรทัดการจัดหาด้านบนไว้ใต้บรรทัดการจัดหาสำหรับ nvm ในโปรไฟล์ของคุณ ( .bashrc
, .bash_profile
)
นาโนเมตร:
แท็บ
$ nvm
นามแฝงปิดการใช้งานรายการติดตั้ง-การติดตั้งใหม่ระยะไกล-แพ็คเกจถอนการติดตั้งเวอร์ชัน cache exec install-latest-npm ls รัน unload version-remote รายการวิธีใช้ปัจจุบัน ls-remote unalias ใช้ which
นามแฝง nvm:
แท็บ
$ nvm alias
ค่าเริ่มต้น iojs lts/* lts/อาร์กอน lts/โบรอน lts/คาร์บอน lts/ดับเนียม lts/โหนดเออร์เบียม เสถียร ไม่เสถียร
$ nvm นามแฝง แท็บ
$ nvm alias my_alias
เวอร์ชัน 10.22.0 เวอร์ชัน 12.18.3 เวอร์ชัน 14.8.0
การใช้ NVM:
$ nvm use
แท็บ
my_alias default v10.22.0 v12.18.3 v14.8.0
ถอนการติดตั้ง nvm:
$ nvm uninstall
แท็บ
my_alias default v10.22.0 v12.18.3 v14.8.0
nvm
จะประสบปัญหาบางอย่างหากคุณตั้งค่าที่ไม่ใช่ค่าเริ่มต้นไว้ (ดู #606) เป็นที่ทราบกันว่าสิ่งต่อไปนี้ทำให้เกิดปัญหา:
ภายใน ~/.npmrc
:
คำนำหน้า = 'บางส่วน / เส้นทาง'
ตัวแปรสภาพแวดล้อม:
$NPM_CONFIG_PREFIX$คำนำหน้า
การตั้งค่าเชลล์:
ชุด -e
เพื่อให้มีประสิทธิภาพที่ดีที่สุด (และการเพิ่มประสิทธิภาพอื่นๆ) nvm จะดาวน์โหลดและติดตั้งไบนารีที่คอมไพล์ไว้ล่วงหน้าสำหรับโหนด (และ npm) เมื่อคุณรัน nvm install X
โปรเจ็กต์ Node คอมไพล์ ทดสอบ และโฮสต์/จัดเตรียมไบนารีที่คอมไพล์ไว้ล่วงหน้าซึ่งสร้างขึ้นสำหรับการแจกแจง Linux กระแสหลัก/ดั้งเดิม (เช่น Debian, Ubuntu, CentOS, RedHat และคณะ)
Alpine Linux แตกต่างจาก Linux ทั่วไป/ทั่วไปตรงที่ใช้ BusyBox ซึ่งเป็น Linux ขนาดกะทัดรัดมาก (~ 5MB) BusyBox (และ Alpine Linux) ใช้สแต็ก C/C++ ที่แตกต่างกันกับลีนุกซ์รุ่นหลัก/ดั้งเดิมส่วนใหญ่ - musl สิ่งนี้ทำให้โปรแกรมไบนารี่ที่สร้างขึ้นสำหรับกระแสหลัก/ดั้งเดิมเข้ากันไม่ได้กับ Alpine Linux ดังนั้นเราจึงไม่สามารถ nvm install X
บน Alpine Linux เพียงอย่างเดียวได้ และคาดว่าไบนารี่ที่ดาวน์โหลดมาจะทำงานได้อย่างถูกต้อง คุณจะเห็นข้อผิดพลาด "...ไม่มีอยู่" หากคุณ ลองสิ่งนั้น
มีแฟล็ก -s
สำหรับ nvm install
ซึ่งร้องขอ nvm ดาวน์โหลดซอร์สโหนดและคอมไพล์ในเครื่อง
หากการติดตั้ง nvm บน Alpine Linux ยังคง เป็น สิ่งที่คุณต้องการหรือจำเป็นต้องทำ คุณควรจะสามารถบรรลุเป้าหมายนี้ได้โดยการเรียกใช้เชลล์ Alpine Linux ต่อไปนี้ ขึ้นอยู่กับเวอร์ชันที่คุณใช้:
apk เพิ่ม -U curl bash ใบรับรอง ca openssl ncurses coreutils python3 ทำให้ gcc g++ libgcc linux-headers grep util-linux binutils findutils ขด -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | ทุบตี
apk เพิ่ม -U curl bash ใบรับรอง ca openssl ncurses coreutils python2 ทำให้ gcc g++ libgcc linux-headers grep util-linux binutils findutils ขด -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | ทุบตี
หมายเหตุ: Alpine 3.5 สามารถติดตั้ง NodeJS เวอร์ชันสูงสุด v6.9.5 เท่านั้น, Alpine 3.6 สามารถติดตั้งเวอร์ชันสูงสุด v6.10.3, Alpine 3.7 ติดตั้งเวอร์ชันสูงสุด v8.9.3, Alpine 3.8 ติดตั้งเวอร์ชันสูงสุด v8.14.0, ติดตั้ง Alpine 3.9 เวอร์ชันสูงสุด v10.19.0, Alpine 3.10 ติดตั้งเวอร์ชันสูงสุด v10.24.1, Alpine 3.11 ติดตั้งเวอร์ชันสูงสุด v12.22.6, Alpine 3.12 ติดตั้งเวอร์ชันสูงสุด v12.22.12, Alpine 3.13 & 3.14 ติดตั้งเวอร์ชันสูงสุด v14.20.0, Alpine 3.15 & 3.16 ติดตั้งเวอร์ชันสูงสุด v16.16.0 ( เป็นเวอร์ชันทั้งหมดในสาขาหลัก ) Alpine 3.5 - 3.12 ต้องใช้แพ็คเกจ python2
ในการสร้าง NodeJS เนื่องจากเป็นเวอร์ชันเก่าที่จะสร้าง Alpine 3.13+ ต้องใช้ python3
เพื่อสร้าง NodeJS เวอร์ชันใหม่ได้สำเร็จ แต่คุณสามารถใช้ python2
กับ Alpine 3.13+ ได้ หากคุณต้องการสร้างเวอร์ชันของโหนดที่รองรับใน Alpine 3.5 - 3.15 คุณเพียงแค่ต้องระบุเวอร์ชันของ NodeJS ที่คุณต้องการติดตั้ง สคริปต์การติดตั้งแพ็คเกจ
โครงการ Node มีความปรารถนา แต่ไม่มีแผนที่เป็นรูปธรรม (เนื่องจากค่าใช้จ่ายในการสร้าง การทดสอบ และการสนับสนุน) เพื่อเสนอไบนารีที่เข้ากันได้กับ Alpine
เป็นทางเลือกที่เป็นไปได้ @mhart (ผู้สนับสนุนโหนด) มีอิมเมจ Docker บางส่วนสำหรับ Alpine Linux พร้อม Node และเป็นทางเลือก npm ติดตั้งไว้ล่วงหน้า
หากต้องการลบ nvm
ด้วยตนเอง ให้ดำเนินการดังต่อไปนี้:
ขั้นแรก ให้ใช้ nvm unload
เพื่อลบคำสั่ง nvm ออกจากเซสชันเทอร์มินัลของคุณ และลบไดเร็กทอรีการติดตั้ง:
$ nvm_dir="${NVM_DIR:-~/.nvm}"$ nvm ยกเลิกการโหลด $ RM -rf "$nvm_dir"
แก้ไข ~/.bashrc
(หรือการกำหนดค่าทรัพยากรเชลล์อื่น ๆ ) และลบบรรทัดด้านล่าง:
ส่งออก NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # สิ่งนี้จะโหลด nvm[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
เพื่อให้การพัฒนาและการทดสอบทำงานได้ง่ายขึ้น เรามี Dockerfile สำหรับการใช้งานการพัฒนาซึ่งใช้อิมเมจพื้นฐาน Ubuntu 18.04 ซึ่งจัดเตรียมด้วยเครื่องมือที่จำเป็นและมีประโยชน์สำหรับการพัฒนา nvm
เพื่อสร้างอิมเมจนักเทียบท่าของสภาพแวดล้อม รันคำสั่งนักเทียบท่าที่ รูทของที่เก็บ nvm
:
$ นักเทียบท่า build -t nvm-dev
สิ่งนี้จะจัดแพ็คเกจพื้นที่เก็บข้อมูล nvm ปัจจุบันของคุณด้วยสภาพแวดล้อมการพัฒนาที่กำหนดไว้ล่วงหน้าของเราให้เป็นอิมเมจนักเทียบท่าที่ชื่อ nvm-dev
เมื่อสร้างเสร็จแล้ว ให้ตรวจสอบอิมเมจของคุณผ่าน docker images
:
$ ภาพนักเทียบท่า รหัสรูปภาพแท็กที่เก็บขนาดที่สร้าง nvm-dev ล่าสุด 9ca4c57a97d8 7 วันที่แล้ว 650 MB
หากคุณไม่ได้รับข้อความแสดงข้อผิดพลาด ตอนนี้คุณสามารถมีส่วนร่วมใน:
$ นักเทียบท่าทำงาน -h nvm-dev -it nvm-dev nvm@nvm-dev:~/.nvm$
โปรดทราบว่าจะใช้เวลาประมาณ 8 นาทีในการสร้างรูปภาพ และขนาดรูปภาพจะอยู่ที่ประมาณ 650MB จึงไม่เหมาะสำหรับการใช้งานจริง
สำหรับข้อมูลและเอกสารเพิ่มเติมเกี่ยวกับนักเทียบท่า โปรดดูที่เว็บไซต์อย่างเป็นทางการ:
https://www.docker.com/
https://docs.docker.com/
หากคุณพยายามติดตั้งเวอร์ชันโหนดและการติดตั้งล้มเหลว ตรวจสอบให้แน่ใจว่าได้เรียกใช้ nvm cache clear
เพื่อลบการดาวน์โหลดโหนดที่แคชไว้ ไม่เช่นนั้นคุณอาจได้รับข้อผิดพลาดดังต่อไปนี้:
curl: (33) เซิร์ฟเวอร์ HTTP ดูเหมือนจะไม่รองรับช่วงไบต์ ไม่สามารถดำเนินการต่อได้
sudo node
ของฉันอยู่ที่ไหน ลองดู #43 ครับ
หลังจากการเปิดตัวโหนด v0.8.6 แล้ว nvm จะพยายามติดตั้งจากแพ็คเกจไบนารี แต่ในบางระบบ แพ็คเกจไบนารีอย่างเป็นทางการไม่ทำงานเนื่องจาก libs ที่แชร์ไม่เข้ากัน ในกรณีเช่นนี้ ให้ใช้ตัวเลือก -s
เพื่อบังคับติดตั้งจากแหล่งที่มา:
การติดตั้ง nvm -s 0.8.6
หากการตั้งค่านามแฝง default
ไม่ได้สร้างเวอร์ชันโหนดในเชลล์ใหม่ (เช่น system
ผลผลิต nvm current
) ตรวจสอบให้แน่ใจว่า PATH
โหนดของระบบถูกตั้งค่าไว้ก่อนสายแหล่ง nvm.sh
ในโปรไฟล์เชลล์ของคุณ (ดู #658)
ไม่พบเวอร์ชันโหนด NVM ใน Shell VIM
หากคุณตั้งค่าเวอร์ชันโหนดเป็นเวอร์ชันอื่นนอกเหนือจากเวอร์ชันโหนดระบบของคุณ nvm use 6.2.1
และเปิด VIM และเรียกใช้ :!node -v
คุณควรเห็น v6.2.1
หากคุณเห็นเวอร์ชันระบบของคุณ v0.12.7
คุณต้องเรียกใช้:
sudo chmod ugo-x/usr/libexec/path_helper
เพิ่มเติมเกี่ยวกับปัญหานี้ใน dotphiles/dotzsh
NVM ไม่สามารถใช้งานได้กับตัวเลือก "คำนำหน้า" การกำหนดค่า NPM
โซลูชันบางอย่างสำหรับปัญหานี้สามารถพบได้ที่นี่
มีอีกกรณีหนึ่งที่ทำให้เกิดปัญหานี้และนั่นคือ ความไม่ตรงกันระหว่างเส้นทาง $HOME
และชื่อจริงของโฮมไดเร็กตอรี่ของผู้ใช้
คุณต้องตรวจสอบให้แน่ใจว่าชื่อไดเรกทอรีผู้ใช้ใน $HOME
และชื่อไดเรกทอรีผู้ใช้ที่คุณเห็นจากการรัน ls /Users/
เป็นทุนในลักษณะเดียวกัน (ดูปัญหานี้)
หากต้องการเปลี่ยนไดเรกทอรีผู้ใช้และ/หรือชื่อบัญชีทำตามคำแนะนำที่นี่
Homebrew ทำให้ไดเรกทอรี ZSH ไม่ปลอดภัย
ZSH Compinit: ไดเรกทอรีที่ไม่ปลอดภัย, เรียกใช้ compaudit สำหรับรายการ ละเว้นไดเรกทอรีที่ไม่ปลอดภัยและดำเนินการต่อ [y] หรือยกเลิกการบังคับใช้ [n]? ย
Homebrew ทำให้เกิดไดเรกทอรีที่ไม่ปลอดภัยเช่น /usr/local/share/zsh/site-functions
และ /usr/local/share/zsh
นี่ ไม่ใช่ ปัญหา nvm
- เป็นปัญหา Homebrew อ้างอิงที่นี่สำหรับวิธีแก้ปัญหาบางอย่างที่เกี่ยวข้องกับปัญหา
Macs กับแอปเปิ้ลซิลิคอนชิป
การสนับสนุนการทดลองสำหรับสถาปัตยกรรมชิป Apple Silicon ถูกเพิ่มเข้ามาใน Node.js V15.3 และเพิ่มการสนับสนุนอย่างเต็มรูปแบบใน v16.0 ด้วยเหตุนี้หากคุณพยายามติดตั้งโหนดรุ่นเก่าตามปกติคุณอาจจะได้รับข้อผิดพลาดในการรวบรวมเมื่อติดตั้งโหนดหรือข้อผิดพลาดนอกหน่วยความจำในขณะที่เรียกใช้รหัสของคุณ
ดังนั้นหากคุณต้องการเรียกใช้เวอร์ชันก่อน V16.0 บน Apple Silicon Mac มันอาจเป็นการดีที่สุดที่จะรวบรวมโหนดที่กำหนดเป้าหมายไปที่สถาปัตยกรรม x86_64
Intel เพื่อให้ Rosetta 2 สามารถแปลคำแนะนำโปรเซสเซอร์ x86_64
เป็นคำแนะนำ Apple Silicon นี่คือสิ่งที่คุณจะต้องทำ:
ติดตั้ง Rosetta หากคุณยังไม่ได้ทำ
$ SoftwareUpdate-Install-Rosetta
คุณอาจสงสัยว่า "Apple Silicon Mac ของฉันจะรู้ว่าจะใช้ Rosetta สำหรับโหนดที่รวบรวมสำหรับชิป Intel ได้อย่างไร" หากปฏิบัติการมีเฉพาะคำแนะนำ Intel MacOS จะใช้ Rosetta โดยอัตโนมัติเพื่อแปลคำแนะนำ
เปิดเปลือกที่ทำงานโดยใช้ Rosetta
$ arch -x86_64 zsh
หมายเหตุ: สิ่งเดียวกันนี้สามารถทำได้โดยการค้นหาแอพเทอร์มินัลหรือ iTerm ใน Finder คลิกขวาเลือก "รับข้อมูล" จากนั้นตรวจสอบกล่องที่มีป้ายกำกับว่า "เปิดโดยใช้ Rosetta"
หมายเหตุ: เซสชันเทอร์มินัลนี้กำลังทำงานอยู่ใน zsh
หาก zsh
ไม่ใช่เชลล์ที่คุณใช้โดยทั่วไป nvm
อาจไม่ได้เป็น source
โดยอัตโนมัติเช่นเดียวกับที่อาจใช้สำหรับเชลล์ปกติของคุณผ่าน dotfiles ของคุณ หากเป็นเช่นนั้นให้แน่ใจว่าได้มาจากแหล่งที่มาของ nvm
$ source "$ {nvm_dir} /nvm.sh"
ติดตั้งโหนดเวอร์ชันเก่า ๆ ที่คุณสนใจลองใช้ 12.22.1 เป็นตัวอย่าง สิ่งนี้จะดึงซอร์สโค้ดโหนดและรวบรวมซึ่งจะใช้เวลาหลายนาที
$ nvm ติดตั้ง v12.22.1-แชร์-zlib
หมายเหตุ: คุณอาจอยากรู้ว่าทำไม --shared-zlib
มีข้อผิดพลาดใน clang
เลอร์ระบบของ Apple รุ่นล่าสุด หากมีการติดตั้งเวอร์ชันที่เสียเหล่านี้ในระบบของคุณขั้นตอนข้างต้นจะยังคงประสบความสำเร็จแม้ว่าคุณจะไม่ได้รวมธง --shared-zlib
อย่างไรก็ตามในภายหลังเมื่อคุณพยายาม npm install
โดยใช้ Node.js เวอร์ชันเก่าของคุณคุณจะเห็นข้อผิดพลาด incorrect data check
หากคุณต้องการหลีกเลี่ยงความยุ่งยากในการจัดการกับสิ่งนี้ให้รวมธงนั้น สำหรับรายละเอียดเพิ่มเติมดูปัญหานี้และความคิดเห็นนี้
ออกจากกลับไปที่เชลล์ดั้งเดิมของคุณ
$ ออก $ arch อาร์ม64
หมายเหตุ: หากคุณเลือกกล่องที่มีป้ายกำกับว่า "เปิดโดยใช้ Rosetta" แทนที่จะเรียกใช้คำสั่ง CLI ในขั้นตอนที่สองคุณจะเห็น i386
ที่นี่ หากคุณไม่ได้มีเหตุผลอื่นที่จะเลือกกล่องนั้นคุณสามารถยกเลิกการเลือกได้แล้ว
ตรวจสอบเพื่อให้แน่ใจว่าสถาปัตยกรรมถูกต้อง x64
เป็นตัวย่อสำหรับ x86_64
ซึ่งเป็นสิ่งที่คุณต้องการเห็น
$ node -p process.arch x64
ตอนนี้คุณควรจะสามารถใช้โหนดได้ตามปกติ
หากคุณพบข้อผิดพลาดนี้ใน WSL-2:
Curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | ทุบตี % รวม % ได้รับ % xferd ความเร็วเฉลี่ยเวลาเวลาปัจจุบันปัจจุบัน DLOAD อัปโหลดความเร็วซ้ายที่ใช้ไปทั้งหมด 0 0 0 0 0 0 0 0 0-:-:-0:00:09-:-:-0curl: (6) ไม่สามารถแก้ไขโฮสต์: raw.githubusercontent.com
อาจเป็นเพราะยาต้านไวรัส VPN หรือเหตุผลอื่น ๆ ของคุณ
คุณสามารถ ping 8.8.8.8
ในขณะที่คุณไม่สามารถ ping google.com
สิ่งนี้สามารถแก้ไขได้โดยการเรียกใช้สิ่งนี้ในไดเรกทอรีรากของคุณ:
sudo rm /etc/resolv.conf sudo bash -c 'echo "nameserver 8.8.8.8"> /etc/resolv.conf'sudo bash -c' echo "[เครือข่าย]"> /etc/wsl.conf'sudo bash -c 'echo "generesolvconf = false" >> /etc/wsl.conf'sudo chattr +i /etc/resolv.conf
สิ่งนี้จะลบไฟล์ resolv.conf
ของคุณที่สร้างขึ้นโดยอัตโนมัติเมื่อคุณเรียกใช้ WSL สร้างไฟล์ใหม่และวาง nameserver 8.8.8.8
จากนั้นสร้างไฟล์ wsl.conf
และเพิ่ม [network]
และ generateResolveConf = false
ไฟล์.
คุณสามารถตรวจสอบเนื้อหาของไฟล์ได้โดยรัน:
cat /etc/resolv.conf
ปัจจุบันผู้ดูแล แต่เพียงผู้เดียวคือ @ljharb - ยินดีต้อนรับผู้ดูแลรักษามากขึ้นและเราหวังว่าจะเพิ่มผู้คนให้กับทีมเมื่อเวลาผ่านไป การกำกับดูแลจะได้รับการประเมินอีกครั้งเนื่องจากโครงการวิวัฒนาการ
รองรับเฉพาะเวอร์ชันล่าสุด (v0.40.1 ในเวลานี้)
หากคุณไม่สามารถอัปเดตเป็น nvm
เวอร์ชันล่าสุดพันธมิตรของเราให้การแก้ไขความปลอดภัยเชิงพาณิชย์สำหรับเวอร์ชันที่ไม่ได้รับการสนับสนุนทั้งหมด:
Herodevs ไม่สิ้นสุดการสนับสนุน
ดู License.md
มูลนิธิ Copyright OpenJS และผู้สนับสนุน nvm
สงวนลิขสิทธิ์. มูลนิธิ OpenJS มีเครื่องหมายการค้าจดทะเบียนและใช้เครื่องหมายการค้า สำหรับรายการเครื่องหมายการค้าของมูลนิธิ OpenJS โปรดดูนโยบายเครื่องหมายการค้าและรายการเครื่องหมายการค้าของเรา Node.js เป็นเครื่องหมายการค้าของ Joyent, Inc. และใช้โดยได้รับอนุญาต เครื่องหมายการค้าและโลโก้ที่ไม่ได้ระบุไว้ในรายการเครื่องหมายการค้า OpenJS Foundation คือเครื่องหมายการค้า™หรือเครื่องหมายการค้าจดทะเบียนของผู้ถือของตน การใช้งานของพวกเขาไม่ได้หมายความถึงความเกี่ยวข้องใด ๆ กับหรือรับรองโดยพวกเขา
มูลนิธิ OpenJS | เงื่อนไขการใช้งาน | นโยบายความเป็นส่วนตัว Bylaws Foundation OpenJS | นโยบายเครื่องหมายการค้า รายการเครื่องหมายการค้า นโยบายคุกกี้