NPM-AUDIT ค้นหาช่องโหว่สูง ฉันควรจะทำอย่างไร?


13

npm audit ทำงานในโครงการของฉันและรับสิ่งนี้มาให้ฉัน

การ
พึ่งพาการฉีดคำสั่งสูงของ @ angular-devkit / build-angular [dev]

Path @ angular-devkit / build-angular> @ ngtools / webpack> tree-kill

ข้อมูลเพิ่มเติม https://npmjs.com/advisories/1432

ฉีดคำสั่งสูง

แพ็คเกจฆ่าต้นไม้

ได้รับการติดตั้งใน> = 1.2.2

การพึ่งพาของ @ angular-devkit / build-angular [dev]

Path @ angular-devkit / build-angular> tree-kill

ข้อมูลเพิ่มเติม https://npmjs.com/advisories/1432

Tree-killต้องได้รับการอัปเดต แต่เป็น dep ของเชิงมุมไม่ใช่ของฉัน แล้วอะไรล่ะ ต้องรอให้ทีมงานเชิงมุมอัปเดต package.json เป็น tree-kill เวอร์ชันใหม่กว่าหรือไม่

คำตอบ:


11

@angular-devkit/build-angularคุณสามารถแก้ไขปัญหานี้โดยไม่ต้องรอรุ่นใหม่ของแพคเกจ

เพียงทำตามขั้นตอนต่อไปนี้:

  1. อัปเดตpackage.jsonไฟล์ของคุณโดยเพิ่มresolutionsหัวข้อด้วยแพ็คเกจที่เหมาะสมtree-kill:
"resolutions": {
  "tree-kill": "1.2.2"
}
  1. อัปเดตpackage-lock.jsonคำสั่งของคุณโดยใช้:
npx npm-force-resolutions
  1. ติดตั้งแพคเกจ NPM ใหม่ในโครงการของคุณ:
rm -r node_modules
npm install

เรียกใช้npm auditเพื่อตรวจสอบว่าโครงการของคุณไม่มีปัญหานี้อีกแล้ว และอย่าลืมส่งไฟล์ที่ถูกดัดแปลงpackage.jsonและpackage-lock.jsonและ

ข้อมูลเพิ่มเติมเกี่ยวกับมติ NPM กองทัพ


11

ฉันมีปัญหาเดียวกันวันนี้และฉันแก้ไขโดย:

  1. ลบแพ็กเกจ tree-kill จากโฟลเดอร์ node_modules
  2. ลบไฟล์ package-lock.json
  3. ไปที่โฟลเดอร์ @ angular-devkit / build-angular ในโฟลเดอร์ node_modules และแก้ไขไฟล์ package.json เปลี่ยนเวอร์ชัน tree-kill จาก 1.2.1 เป็น 1.2.2
  4. ไปที่โฟลเดอร์ @ ngtools / webpack ในโฟลเดอร์ node_modules และทำเช่นเดียวกับขั้นตอนที่ 3

เรียกใช้การติดตั้ง npm หลังจากนั้น


1
ดังนั้นโดยการแก้ไขนี้ฉันต้องเก็บโฟลเดอร์ node_modules ด้วย Git ใช่ไหม
โลกิ

ฉันไม่แน่ใจว่าฉันได้รับคำถามของคุณถูกต้องหรือไม่ แต่คุณต้องยอมรับการเปลี่ยนแปลงใหม่หลังจากการติดตั้งใหม่
saleem

1
แก้ไขด้วยตนเองการอ้างอิงของคุณไม่ใช่ความคิดที่ดีเนื่องจากการติดตั้งใหม่ของโครงการจะเป็นตัวแทนของปัญหา
Nemus

2

ฉันเพิ่งมีปัญหานี้เช่นกันและหลังจากการวิจัยบางอย่างฉันพบบางสิ่ง:

NPM ส่งข้อผิดพลาดใน "การตรวจสอบแก้ไข" - ไม่สนับสนุนการกำหนดค่ารีจิสทรี

แน่นอนมันเกี่ยวกับปัญหาอื่น แต่ด้วยการปรับแก้ปัญหาที่ให้ไว้มันช่วยแก้ไขปัญหาของฉันได้

ดังนั้น:

  • ลบโฟลเดอร์ node_modules ของ tree-kill
  • แก้ไขไฟล์ package-lock.json เหมือนเสร็จแล้ว แต่ใช้โมดูลฆ่าต้นไม้แทน
  • อย่าลืมเรียกใช้การติดตั้ง npmในตอนท้าย

ฉันหวังว่าฉันจะชัดเจนพอ


ฉันจะแก้ไข package-lock.json ในขั้นตอนที่สองได้อย่างไรถ้าควรลบเมื่อทำการลบโฟลเดอร์ node_modules ของ tree-kill ในขั้นตอนที่ 1
Mauricio Martinez

2

ตรวจสอบ repo ของ GitHub เพื่อดูว่าการแก้ไขนั้นกำลังทำงานอยู่หรือไม่ ฉันพบปัญหานี้: https://github.com/angular/angular-cli/issues/16629และคำขอดึง ( https://github.com/angular/angular-angular-cli/pull/15894 ) ซึ่งเป็นการเอาการอ้างอิงออก


0
  1. ลบแพ็กเกจ tree-kill จากโฟลเดอร์ node_modules & ลบ
    ไฟล์ package-lock.json

  2. ค้นหาโฟลเดอร์ @ angular-devkit / build-angular ในโฟลเดอร์ node_modules และแก้ไขไฟล์ package.json เปลี่ยนเวอร์ชัน tree-kill จาก 1.2.1 เป็น 1.2.2
    Find @ ngtools / webpack ในโฟลเดอร์ node_modules และแก้ไขไฟล์ package.json เปลี่ยนเวอร์ชัน tree-kill จาก 1.2.1 เป็น 1.2.2

  3. เรียกใช้การติดตั้ง NPM

0

เพิ่มรหัสด้านล่างเพื่อ package.json

"resolutions": {
"tree-kill":"1.2.2"
}

ลบโมดูลโหนดทั้งหมด:

rm -r node_modules

อัพเดต package-lock.json สำหรับรุ่นใหม่ 1.2.2 ใน:

npx npm-force-resolutions

ตอนนี้ติดตั้งโมดูลโหนด:

npm install

มันใช้งานได้สำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.