กรอกแบบฟอร์มนี้เพื่อแสดงความคิดเห็นและลงทะเบียนเพื่อรับการอัปเดตความคืบหน้า
การอัปเดตจะถูกโพสต์บนหน้า LinkedIn ของซอฟต์แวร์ผู้เขียนด้วย
Microsoft/npm/Google แนะนำตัวจัดการเวอร์ชัน Node.js สำหรับ Windows
nvm ดั้งเดิมเป็นโปรเจ็กต์ที่แยกจากกันโดยสิ้นเชิงสำหรับ Mac/Linux เท่านั้น โปรเจ็กต์นี้ใช้ปรัชญาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง และไม่ได้เป็นเพียงโคลนของ nvm รายละเอียดแสดงอยู่ใน ทำไมต้องเป็นผู้จัดการเวอร์ชันอื่น และความแตกต่างใหญ่คืออะไร?.
สปอนเซอร์ไม่ได้เหรอ? พิจารณาเสนอชื่อ @coreybutler ให้เป็นดาว Github |
ประสบปัญหาใช่ไหม? ดูวิกิปัญหาทั่วไป
กำลังมองหาคำติชม:เรากำลังพัฒนา Runtime (rt) ซึ่งเป็นรุ่นต่อจาก NVM สำหรับ Windows กรุณาสละเวลาสักครู่เพื่อกรอกแบบฟอร์มนี้ ขอบคุณ! |
จัดการการติดตั้ง node.js หลายรายการบนคอมพิวเตอร์ Windows
tl;dr คล้ายกัน (ไม่เหมือนกัน) กับ nvm แต่สำหรับ Windows มีช่างติดตั้ง. ดาวน์โหลดเดี๋ยวนี้!
นี่เป็นตัวจัดการเวอร์ชันโหนดเสมอ ไม่ใช่ตัวจัดการ io.js ดังนั้นจึงไม่มีการสนับสนุนด้านหลังสำหรับ io.js รองรับโหนด 4+ โปรดจำไว้ว่าเมื่อรัน nvm install
หรือ nvm use
โดยปกติแล้ว Windows ต้องการสิทธิ์ผู้ดูแลระบบ (เพื่อสร้าง symlink) หากต้องการติดตั้ง Node.js เวอร์ชันล่าสุด ให้รัน nvm install latest
หากต้องการติดตั้งเวอร์ชันเสถียรล่าสุด ให้รัน nvm install lts
มีบางสถานการณ์ที่ความสามารถในการสลับระหว่าง Node.js เวอร์ชันต่างๆ จะมีประโยชน์มาก ตัวอย่างเช่น หากคุณต้องการทดสอบโมดูลที่คุณกำลังพัฒนาด้วยเวอร์ชัน Bleeding Edge ล่าสุดโดยไม่ต้องถอนการติดตั้งโหนดเวอร์ชันเสถียร ยูทิลิตี้นี้สามารถช่วยได้
วิธีที่ง่ายที่สุด (แนะนำ) เพื่อให้ NVM สำหรับ Windows ทำงานอย่างถูกต้องคือการถอนการติดตั้งการติดตั้งโหนดก่อนหน้า ก่อนที่ จะติดตั้ง NVM สำหรับ Windows หลีกเลี่ยงข้อผิดพลาดทั้งหมดที่แสดงด้านล่าง อย่างไรก็ตาม; คุณอาจไม่ต้องการทำลายการติดตั้ง Node ของคุณหากคุณปรับแต่งมันในระดับสูง NVM สำหรับ Windows สามารถ จัดการการติดตั้งที่มีอยู่ได้ แต่มีความแตกต่างในเรื่องนี้ (ขึ้นอยู่กับสิทธิ์ของผู้ใช้ที่ทำการติดตั้งทั้งหมด) หากคุณมีบัญชีผู้ดูแลระบบ จะค่อนข้างปลอดภัยที่จะติดตั้ง NVM สำหรับ Windows ก่อนที่จะถอนการติดตั้ง Node เวอร์ชันดั้งเดิม หากคุณทำงานในสภาพแวดล้อมแบบปิด เช่น สภาพแวดล้อม Active Directory ขององค์กรที่การติดตั้ง/การถอนการติดตั้งถูกควบคุมโดยนโยบายกลุ่ม คุณควรพิจารณาลบ Node เวอร์ชันดั้งเดิมก่อนที่จะติดตั้ง NVM4W
ปัญหาการอนุญาต ด้วยเหตุผลด้านความปลอดภัย Windows จะไม่อนุญาตให้แอปพลิเคชันจากผู้ขายรายหนึ่ง "ถอนการติดตั้ง" แอปพลิเคชันจากผู้ขายรายอื่น ตัวติดตั้ง NVM4W อย่างเป็นทางการจะพยายามจัดการการติดตั้ง Node. ที่มีอยู่ แต่ไม่สามารถถอนการติดตั้งเวอร์ชัน Node.js ดั้งเดิมได้ เพื่อแก้ไขปัญหานี้ ตัวติดตั้ง NVM สำหรับ Windows จะพยายามคัดลอกไฟล์การติดตั้ง Node.js ดั้งเดิมไปยังรูท NVM ซึ่งรวมถึงโมดูลและการกำหนดค่า npm ส่วนกลาง เมื่อกระบวนการนี้เสร็จสมบูรณ์ คุณสามารถถอนการติดตั้งการติดตั้ง Node.js ดั้งเดิมได้โดยไม่สูญเสียข้อมูล
ปัญหาการติดตั้ง PATH หากคุณพยายามกำหนดค่า NVM_SYMLINK
ให้ใช้ไดเร็กทอรีที่มีอยู่ (เช่น C:Program Filesnodejs
) มันจะล้มเหลวเนื่องจาก symlink ไม่สามารถเขียนทับไดเร็กทอรีทางกายภาพได้ นี่ไม่ใช่ปัญหาหากคุณเลือกเส้นทาง Symlink อื่น (เช่น C:nvmnode
)
ความขัดแย้งของเส้นทาง หากคุณไม่ได้ถอนการติดตั้งเวอร์ชันดั้งเดิม การรัน nvm use
อาจดูเหมือนไม่ทำอะไรเลย การรัน node -v
จะแสดงเวอร์ชันการติดตั้งดั้งเดิมเสมอ นี่เป็นเพราะข้อขัดแย้ง PATH
ที่แสดงเมื่อมีการติดตั้งแอปพลิเคชันเดียวกันหลายครั้ง ใน NVM4W 1.1.11+ ให้รัน nvm debug
เพื่อตรวจสอบว่าคุณมี PATH
ที่ขัดแย้งกันหรือไม่
เพื่อความง่าย เราขอแนะนำให้ถอนการติดตั้ง Node.js เวอร์ชันที่มีอยู่ก่อนที่จะใช้ NVM สำหรับ Windows ลบไดเร็กทอรีการติดตั้ง Node.js ที่มีอยู่ (เช่น %ProgramFiles%nodejs
) ที่อาจยังคงอยู่ Symlink ที่สร้างขึ้นของ NVM จะไม่เขียนทับไดเร็กทอรีการติดตั้งที่มีอยู่ (แม้จะว่างเปล่า)
- สำรองข้อมูลการกำหนดค่า npmrc
ทั่วโลกหรือไม่ (เช่น %AppData%npmetcnpmrc
)
หรือคัดลอกการตั้งค่าไปยังการกำหนดค่าผู้ใช้ %UserProfile%.npmrc
ลบตำแหน่งการติดตั้ง npm ที่มีอยู่ (เช่น %AppData%npm
) เพื่อป้องกันความขัดแย้งของโมดูลส่วนกลาง
ใช้ตัวติดตั้งล่าสุด (มาพร้อมกับตัวถอนการติดตั้ง) หรือปฏิบัติตามคู่มือการติดตั้งด้วยตนเอง
หาก NVM4W ไม่ทำงานทันทีหลังการติดตั้ง ให้รีสตาร์ทเทอร์มินัล/powershell (ไม่ใช่ทั้งคอมพิวเตอร์)
หลังการติดตั้ง จะต้องติดตั้งยูทิลิตี้ส่วนกลางใหม่ (เช่นเส้นด้าย) สำหรับโหนดแต่ละเวอร์ชันที่ติดตั้ง:
nvm use 14.0.0 npm install -g yarn nvm use 12.0.1 npm install -g yarn
ในเวอร์ชัน 1.1.8 มียูทิลิตี้การอัปเกรดที่จะทำให้กระบวนการอัปเกรดเป็นแบบอัตโนมัติ
หากต้องการอัพเกรด nvm-windows ให้รันโปรแกรมติดตั้งใหม่ มันจะเขียนทับไฟล์ที่ต้องอัปเดตอย่างปลอดภัยโดยไม่ต้องแตะการติดตั้ง node.js ของคุณ ตรวจสอบให้แน่ใจว่าคุณใช้การติดตั้งและโฟลเดอร์ symlink เดียวกัน หากคุณติดตั้งไว้ที่ตำแหน่งเริ่มต้นในตอนแรก คุณเพียงแค่ต้องคลิก "ถัดไป" ในแต่ละหน้าต่างจนกว่าจะเสร็จสิ้น
nvm-windows ทำงานในเชลล์ผู้ดูแลระบบ คุณจะต้องเริ่ม powershell
หรือ Command Prompt ในฐานะผู้ดูแลระบบเพื่อใช้ nvm-windows
NVM สำหรับ Windows เป็นเครื่องมือบรรทัดคำสั่ง เพียงพิมพ์ nvm
ในคอนโซลเพื่อขอความช่วยเหลือ คำสั่งพื้นฐานคือ:
nvm arch [32|64]
: แสดงว่าโหนดทำงานในโหมด 32 หรือ 64 บิต ระบุ 32 หรือ 64 เพื่อแทนที่สถาปัตยกรรมเริ่มต้น
nvm debug
: ตรวจสอบกระบวนการ NVM4W เพื่อดูปัญหาที่ทราบ
nvm current
: แสดงเวอร์ชันที่ใช้งานอยู่
nvm install
: เวอร์ชันอาจเป็นเวอร์ชันเฉพาะ "ล่าสุด" สำหรับเวอร์ชันปัจจุบันล่าสุด หรือ "lts" สำหรับเวอร์ชัน LTS ล่าสุด เลือกระบุได้ว่าจะติดตั้งเวอร์ชัน 32 หรือ 64 บิต (ค่าเริ่มต้นคือส่วนโค้งของระบบ) ตั้งค่า [arch] เป็น "all" เพื่อติดตั้งเวอร์ชัน 32 และ 64 บิต เพิ่ม --insecure
ต่อท้ายคำสั่งนี้เพื่อข้ามการตรวจสอบ SSL ของเซิร์ฟเวอร์ดาวน์โหลดระยะไกล
nvm list [available]
: แสดงรายการการติดตั้ง node.js พิมพ์ available
ที่ท้ายรายการเพื่อแสดงรายการเวอร์ชันที่มีให้ดาวน์โหลด
nvm on
: เปิดใช้งานการจัดการเวอร์ชัน node.js
nvm off
: ปิดการใช้งานการจัดการเวอร์ชัน node.js (ไม่ได้ถอนการติดตั้งอะไรเลย)
nvm proxy [url]
: ตั้งค่าพร็อกซีเพื่อใช้สำหรับการดาวน์โหลด ปล่อย [url]
ว่างไว้เพื่อดูพร็อกซีปัจจุบัน ตั้งค่า [url]
เป็น "none" เพื่อลบพรอกซี
nvm uninstall
: ถอนการติดตั้งเวอร์ชันเฉพาะ
nvm use
: สลับไปใช้เวอร์ชันที่ระบุ เลือกใช้ latest
, lts
หรือ newest
newest
คือเวอร์ชัน ที่ติดตั้ง ล่าสุด ระบุสถาปัตยกรรม 32/64 บิตหรือไม่ก็ได้ nvm use
จะใช้เวอร์ชันที่เลือกต่อไป แต่เปลี่ยนเป็นโหมด 32/64 บิต สำหรับข้อมูลเกี่ยวกับการใช้ use
ในไดเร็กทอรีเฉพาะ (หรือการใช้ .nvmrc
) โปรดดูที่ปัญหา #16
nvm root
: ตั้งค่าไดเร็กทอรีที่ nvm ควรจัดเก็บ node.js เวอร์ชันต่างๆ หากไม่ได้ตั้งค่า
รากปัจจุบันจะปรากฏขึ้น
nvm version
: แสดงเวอร์ชันปัจจุบันของ NVM สำหรับ Windows
nvm node_mirror
: ตั้งค่า node mirror คนในประเทศจีนสามารถใช้ https://npmmirror.com/mirrors/node/
nvm npm_mirror
: ตั้งค่ากระจก npm คนในประเทศจีนสามารถใช้ https://npmmirror.com/mirrors/npm/
โปรดทราบว่าโมดูล npm ส่วนกลางใดๆ ที่คุณอาจติดตั้งไว้จะ ไม่ ถูกใช้ร่วมกันระหว่าง node.js เวอร์ชันต่างๆ ที่คุณติดตั้งไว้ นอกจากนี้ โมดูล npm บางตัวอาจไม่รองรับเวอร์ชันของโหนดที่คุณใช้ ดังนั้นโปรดระวังสภาพแวดล้อมของคุณในขณะที่คุณทำงาน
ผู้ใช้ได้รายงานปัญหาในการใช้โปรแกรมป้องกันไวรัส โดยเฉพาะ McAfee ดูเหมือนว่าซอฟต์แวร์ป้องกันไวรัสกำลังจัดการการเข้าถึงกลไก VBScript ดูปัญหา #133 สำหรับรายละเอียดและวิธีแก้ปัญหา
v1.1.8 ไม่มีการลงนามโค้ด แต่เวอร์ชันอื่นๆ ทั้งหมดลงนามโดย Ecor Ventures LLC/Author.io สิ่งนี้จะช่วยป้องกันผลบวกลวงกับซอฟต์แวร์ป้องกันไวรัสส่วนใหญ่
v1.1.8+ ไม่ได้รับการลงนามโค้ดเนื่องจากใบรับรองหมดอายุ (ดูบันทึกประจำรุ่นสำหรับเหตุผล) v1.1.9 เป็น โค้ดที่ลงนาม โดย ajyong ผู้สนับสนุนใบรับรองใหม่
ทีแอลอาร์; npm i -g yarn
ดูวิกิเพื่อดูรายละเอียด
ติดตั้ง go จาก http://golang.org
ดาวน์โหลดแหล่งที่มา / Git Clone the repo
เปลี่ยน GOARCH เป็น amd64 ใน build.bat หากคุณรู้สึกอยากสร้างไฟล์ปฏิบัติการแบบ 64 บิต
เปิดพรอมต์คำสั่ง Windows และเปลี่ยนไดเร็กทอรีเป็น project dir
ดำเนินการ go get github.com/blang/semver
ดำเนินการ go get github.com/olekukonko/tablewriter
ดำเนินการ build.bat
ตรวจสอบไดเร็กทอรี dist
เพื่อดูโปรแกรมติดตั้งที่สร้างขึ้น
มีตัวจัดการเวอร์ชันหลายเวอร์ชันสำหรับ node.js เครื่องมือเช่น nvm และ n ทำงานบน Mac OSX และ Linux เท่านั้น ผู้ใช้ Windows ตกอยู่ในความเย็น? ไม่ ทั้ง nvmw และ nodist ได้รับการออกแบบมาสำหรับ Windows เหตุใดจึงต้องมีผู้จัดการเวอร์ชันอื่นสำหรับ Windows?
สถาปัตยกรรมของตัวจัดการเวอร์ชันโหนดส่วนใหญ่สำหรับ Windows อาศัยไฟล์ .bat
ซึ่งใช้เทคนิคอันชาญฉลาดในการตั้งค่าหรือเลียนแบบตัวแปรสภาพแวดล้อม บางส่วนใช้โหนดเอง (เมื่อดาวน์โหลดแล้ว) ซึ่งน่าชื่นชม แต่มีแนวโน้มที่จะเกิดปัญหา ในช่วงประมาณโหนด 0.10.30 โครงสร้างการติดตั้งมีการเปลี่ยนแปลงเล็กน้อย ทำให้บางส่วนหยุดทำงานกับสิ่งใหม่
นอกจากนี้ ผู้ใช้บางรายประสบปัญหาในการติดตั้งโมดูลเหล่านี้ เนื่องจากต้องใช้ความรู้เพิ่มเติมเล็กน้อยเกี่ยวกับโครงสร้างการติดตั้งของโหนด ฉันเชื่อว่าหากผู้คนสามารถสลับระหว่างเวอร์ชันต่างๆ ได้ง่ายกว่า ผู้คนอาจใช้เวลาทดสอบโค้ดของตนในเวอร์ชันด้านหลังและเวอร์ชันในอนาคต... ซึ่งเป็นแนวทางปฏิบัติที่ดี
ก่อนอื่น nvm เวอร์ชันนี้ไม่มีการพึ่งพาโหนด เขียนด้วยภาษา Go ซึ่งเป็นแนวทางที่มีโครงสร้างมากกว่าการแฮ็กไฟล์ .bat
ที่มีข้อจำกัด ไม่ต้องอาศัยการติดตั้งโหนดที่มีอยู่ Go นำเสนอความสามารถในการสร้างเวอร์ชัน Mac/Linux บนโค้ดฐานเดียวกัน อันที่จริงสิ่งนี้กำลังดำเนินการอยู่
กลไกการควบคุมก็แตกต่างกันมากเช่นกัน มีสองวิธีทั่วไปในการรองรับการติดตั้งหลายโหนดที่มีความสามารถในการสลับแบบฮอตสวิตชิ่ง สิ่งแรกคือการแก้ไข PATH
ของระบบทุกครั้งที่คุณเปลี่ยนเวอร์ชันหรือข้ามมันโดยใช้ไฟล์ .bat
เพื่อเลียนแบบโหนดที่ปฏิบัติการได้และเปลี่ยนเส้นทางตามนั้น สิ่งนี้ดูเหมือนเป็นการแฮ็กเล็กน้อยสำหรับฉันเสมอ และมีนิสัยแปลกๆ บางประการอันเป็นผลมาจากการใช้งานนี้
ตัวเลือกที่สองคือการใช้ symlink แนวคิดนี้จำเป็นต้องใส่ symlink ในระบบ PATH
จากนั้นอัปเดตเป้าหมายไปยังไดเร็กทอรีการติดตั้งโหนดที่คุณต้องการใช้ นี่เป็นแนวทางที่ตรงไปตรงมา และดูเหมือนจะเป็นสิ่งที่ผู้คนแนะนำ.... จนกว่าพวกเขาจะรู้ว่ามีความเจ็บปวดบน Windows มากเพียงใด ด้วยเหตุนี้จึงไม่เกิดขึ้นมาก่อน
ในการสร้าง/แก้ไข symlink คุณต้องทำงานเป็นผู้ดูแลระบบ และคุณต้องหลีกเลี่ยง Windows UAC (ข้อความแจ้งที่น่ารำคาญ) โชคดีที่นี่เป็นความท้าทายที่ฉันแก้ไขไปแล้วด้วยสคริปต์ตัวช่วยบางตัวใน node-windows ด้วยเหตุนี้ NVM สำหรับ Windows จะรักษา symlink เดียวที่ใส่ไว้ใน PATH
ระบบระหว่างการติดตั้งเท่านั้น การสลับไปใช้โหนดเวอร์ชันอื่นเป็นเรื่องของการเปลี่ยนเป้าหมายซิมลิงก์ ด้วยเหตุนี้ ยูทิลิตี้นี้จึง ไม่ ต้องการให้คุณเรียกใช้ nvm use xxx
ทุกครั้งที่คุณเปิดหน้าต่างคอนโซล เมื่อคุณ รัน nvm use xxx
เวอร์ชันที่ใช้งานอยู่ของโหนดจะได้รับการอัปเดตโดยอัตโนมัติในหน้าต่างคอนโซลที่เปิดอยู่ทั้งหมด นอกจากนี้ยังยังคงอยู่ระหว่างการรีบูตระบบ ดังนั้นคุณจะต้องใช้ nvm เมื่อต้องการเปลี่ยนแปลงเท่านั้น
NVM สำหรับ Windows มาพร้อมกับตัวติดตั้ง ซึ่งเป็นผลพลอยได้จากการทำงานของฉันบน Fenix Web Server
โดยรวมแล้ว โปรเจ็กต์นี้รวบรวมแนวคิดบางอย่าง โมดูลอื่นๆ ที่ผ่านการต่อสู้มาสองสามชิ้น และการรองรับโหนดเวอร์ชันที่ใหม่กว่า
NVM สำหรับ Windows รู้จักเวอร์ชัน "ล่าสุด" โดยใช้รายการที่จัดทำโดยโปรเจ็กต์โหนด เวอร์ชัน 1.1.1+ ใช้รายการนี้ ก่อนที่จะมีรายการนี้ ฉันได้รวบรวมรุ่นต่างๆ และใช้เป็นฟีดข้อมูลแบบสแตนด์อโลน รายการนี้ใช้ในเวอร์ชัน 1.1.0 และก่อนหน้า แต่ตอนนี้เลิกใช้แล้ว
ฉันต้องการมัน ธรรมดาและเรียบง่าย นอกจากนี้ เห็นได้ชัดว่าการรองรับหลายเวอร์ชันไม่ได้มาในโหนดคอร์ มันเป็นข้ออ้างที่จะเล่นกับโกด้วย
ฉันเลือก Go เนื่องจากเป็นแพลตฟอร์มข้ามแพลตฟอร์ม ให้ความรู้สึกว่ามีค่าใช้จ่ายน้อยกว่า Java และใช้งานได้นานกว่าที่คนส่วนใหญ่คิด นอกจากนี้ฉันอยากจะทดลองด้วย ฉันถูกถามว่าทำไมฉันไม่เขียนมันด้วย Node การพยายามเขียนเครื่องมือด้วยเครื่องมือที่คุณพยายามติดตั้งนั้นไม่สมเหตุสมผลสำหรับฉัน ด้วยเหตุนี้ ข้อกำหนดโครงการของฉันจึงเรียบง่าย... บางอย่างที่ไม่ใช่โหนด โหนดจะยังคงพัฒนาและเปลี่ยนแปลงต่อไป หากคุณต้องการสิ่งเตือนใจ จำ io.js, Ayo, การเปลี่ยนแปลงที่แตกหักทั้งหมดระหว่าง 4.xx ถึง 6.xx และการเปลี่ยนไปใช้ ES Modules ใน 12+ การเปลี่ยนแปลงเป็นสิ่งที่หลีกเลี่ยงไม่ได้ในโลกของซอฟต์แวร์ JavaScript มีไดนามิกอย่างมาก
ขอขอบคุณทุกคนที่ส่งปัญหาทั้งในและนอก Github ให้คำแนะนำ และช่วยทำให้โครงการนี้ดีขึ้นโดยทั่วไป ขอขอบคุณเป็นพิเศษกับ
@vkbansal ซึ่งให้ข้อเสนอแนะที่สำคัญในช่วงแรกของการเปิดตัว
@rainabba และ @sullivanpt เพื่อรับการรองรับ Node v4
@shadow ที่แก้ไขปัญหาการหลบหนีพื้นที่ที่ยาวนานในชื่อพาธ (#355)
อาจยงซึ่งเป็นผู้สนับสนุนใบรับรองการลงนามโค้ดในช่วงปลายปี 2021