มีตัวเลือกในการติดตั้งแพ็กเกจ npm โดยไม่มีการอ้างอิงหรือไม่?


20

ฉันพยายามที่จะแก้ไขแพ็กเกจ npm ที่มีการอ้างอิงหลายรายการ เช่นนี้npm install -g .ใช้เวลานานในการดำเนินการ ฉันมีตัวเลือกอื่นนอกเหนือจากการลบการอ้างอิงจาก packages.json หรือไม่

คำตอบ:



7

เมื่อมองดูเอกสารจะไม่มีตัวเลือกอื่นนอกเหนือจาก--no-optionalสวิตช์

ยังไม่ทดลอง / uncomfirmed

SO & ถามเรื่องนี้: npm installติดตั้งการพึ่งพาทั้งหมดของโครงการของฉันผ่านเครือข่ายแม้ว่าพวกเขาจะถูกติดตั้งหรือพร้อมใช้งานจากแคชแล้วดูเหมือนจะหมายความว่ามี--skip-installedสวิตช์ แต่เอกสารไม่ได้อ้างอิงถึงสวิตช์นี้


7

หากคุณกำลังพัฒนาที่node_moduleตัวเองไม่ต้องเสียเวลาของคุณในnpm installs npm linkแทนการใช้งาน

กล่าวโดยย่อคือคุณสร้างลิงก์สัญลักษณ์ไปยังโฟลเดอร์โมดูลของคุณในโฟลเดอร์โกลบอลที่เป็นเจ้าของ NPM และจากนั้นในโฟลเดอร์แอปของคุณคุณขอให้ npm ใช้โฟลเดอร์ที่เชื่อมโยงสัญลักษณ์นั้น

สิ่งนี้ทำให้การเปลี่ยนแปลงที่คุณทำในโฟลเดอร์โมดูลจะสะท้อนให้เห็นทันทีในแอปของคุณ

นี่คือขั้นตอนหลัก (คัดลอกมาจากบทช่วยสอนที่ลิงก์ด้านล่างอย่าลืมอ่านบทช่วยสอนสำหรับ gotchas ที่สำคัญ):

  1. ซีดีถึง src/my_module
  2. เรียกใช้ " npm link" สิ่งนี้จะสร้างลิงก์สัญลักษณ์จากโฟลเดอร์โกลบอลไปยังsrc/my_moduleโฟลเดอร์
  3. ซีดีถึง src/my_app
  4. npm link my_moduleวิ่ง การเชื่อมโยงนี้node_modules/my_moduleในโครงการนี้โดยเฉพาะอย่างยิ่งไปยังโฟลเดอร์ทั่วโลกเพื่อให้requireสายมองหาลมขึ้นโหลดจากโฟลเดอร์การพัฒนาของคุณmy_module src/my_module

ดูบทช่วยสอนนี้: http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears และเอกสารอย่างเป็นทางการสำหรับnpm link: https://docs.npmjs.com/cli/link


ไม่เปลี่ยนคำตอบที่ฉันยอมรับ แต่การอัปเดตเพราะนี่มีประโยชน์สำหรับกรณีเฉพาะของฉัน
Justin เรียน

4

คุณลักษณะนี้ได้รับการร้องขอย้อนกลับไปในปี 2010 แต่ไม่ได้รับความสนใจและถูกปิดโชคร้าย: https://github.com/npm/npm/issues/340

ฉันลองตัวเลือกมากมายและในที่สุดก็พบวิธีแก้ปัญหาที่ค่อนข้างง่าย - เปลี่ยนชื่อ package.json เป็นอย่างอื่นก่อนที่จะติดตั้ง nint npm แล้วเปลี่ยนกลับเป็นหลังติดตั้งเสร็จสิ้น:

mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json

2
ว้าวนั่นเป็นวิธีเดียวที่จริงจังหรือยัง นั่นไร้สาระควรมีธง--ignore-packageหรืออะไรบางอย่าง
JacobTheDev

2
วิธีแก้ปัญหานี้ดีและอาจเป็นทางออกที่ดีที่สุดสำหรับคำถามของฉัน: stackoverflow.com/questions/53532845/…
aGuegu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.