ค้นหาเว็บไซต์

angular - ฉันควรติดตั้ง peer-dependencies ทั้งหมดด้วยตนเองเพื่อกำจัดคำเตือนของ npm หรือไม่?


ฉันติดตั้งแพ็กเกจ Angular หลายตัวผ่าน npm และฉันได้รับคำเตือนนี้:

@angular/[email  requires a peer of typescript@>=3.1.1 <3.3 
                                                                    but none is installed. 
You must install peer dependencies yourself.

a) ความแตกต่างระหว่าง peer dependency และ just dependency คืออะไร?
b) ตอนนี้ฉันควรติดตั้งอะไรเพื่อแก้ไขคำเตือน?

ฉันหมายถึง สมมติว่าฉันติดตั้งแพ็กเกจ "P" ฉันรู้ แต่ P นี้ต้องการ X, Y และ Z ฉันควรติดตั้งมันด้วยตัวเองไหม? มันดูไม่ค่อยเจ๋งเลย...

จริงๆ แล้ว ฉันติดตั้ง Angular แต่ Angular ต้องการ compiler-clr และเวอร์ชันล่าสุดต้องการ typescript

เมื่อฉันเห็นคำเตือนนี้ ฉันได้ติดตั้ง npm install typescript มันติดตั้งเวอร์ชัน [email compiler-clr ต้องการ typescript@<3.3 ตอนนี้ฉันควรทำอย่างไร?

ฉันควรวิเคราะห์ว่าเวอร์ชันของ TypeScript ไหนออกมาก่อน 3.3 และต่อไป สำหรับคำเตือนทั้งหมดประเภทนี้หรือไม่?

คำตอบ #1

a) การพึ่งพาของเพื่อนร่วมงานของการพึ่งพาอื่นหมายความว่าผู้ก่อนหน้านี้ สามารถติดตั้งควบคู่กับผู้หลังได้ ในขณะที่การพึ่งพาของการพึ่งพาอื่น ติดตั้งผู้ก่อนหน้าพร้อมกับผู้หลัง โดยไม่ต้องให้คุณทำอะไร

ตรวจสอบคำถามใน Stack Overflow นี้เพื่อข้อมูลเต็มเกี่ยวกับความแตกต่างระหว่าง peerDependencies และ dependencies


b) แพ็กเกจ @angular/compiler-cli (GitHub) มีความต้องการเพียร์ของ typescript ตั้งแต่เวอร์ชัน 3.1.1 ถึงต่ำกว่า 3.3.x.

ฉันแนะนำให้คุณรัน npm i -D typescript@~3.2.0 ในโฟลเดอร์หลักของโปรเจกต์ของคุณเพื่อติดตั้ง v3.2.x ในช่วง minor ของ semver (semantic versioner) (ดูคู่มือ semver ของ NPM สำหรับข้อมูลเพิ่มเติม)

คำสั่ง npm i -D typescript@~3.2.0 ทำสิ่งต่อไปนี้:

  • i บ่งบอกว่าคุณกำลังติดตั้งแพ็กเกจ
  • แฟลก -D ระบุว่าคุณกำลังติดตั้งแพ็กเกจและเพิ่มมันลงในวัตถุ devDependencies ใน package.json ของคุณ
  • typescript@~3.2.0 ระบุว่าคุณต้องการติดตั้งแพ็กเกจ typescript ในช่วงเวอร์ชัน 3.2.x โดยที่ x เป็นตัวเลข

    • @~x.x.x ระบุว่าคุณต้องการติดตั้ง

      "ใกล้เคียงกับเวอร์ชัน [ที่ระบุ (x.x.x ในกรณีนี้)]" - npm-package.json | เอกสารประกอบ npm


หากคุณยังมีคำถามใด ๆ หรือถ้าคุณไม่เข้าใจอะไร กรุณาคอมเมนต์คำถามของคุณใต้คำตอบนี้ ฉันจะพยายามช่วยโดยการตอบกลับโดยเร็วที่สุด หวังว่าคำตอบนี้จะเป็นประโยชน์

บทความที่เกี่ยวข้อง