ฉันพยายามที่จะแก้ไขแพ็กเกจ npm ที่มีการอ้างอิงหลายรายการ เช่นนี้npm install -g .
ใช้เวลานานในการดำเนินการ ฉันมีตัวเลือกอื่นนอกเหนือจากการลบการอ้างอิงจาก packages.json หรือไม่
ฉันพยายามที่จะแก้ไขแพ็กเกจ npm ที่มีการอ้างอิงหลายรายการ เช่นนี้npm install -g .
ใช้เวลานานในการดำเนินการ ฉันมีตัวเลือกอื่นนอกเหนือจากการลบการอ้างอิงจาก packages.json หรือไม่
คำตอบ:
- ตัวเลือกที่ไม่จำเป็นจะถูกนำมาใช้ในขณะนี้ตามเอกสารนี้https://docs.npmjs.com/cli/install :
The --no-optional argument will prevent optional dependencies from being installed.
เมื่อมองดูเอกสารจะไม่มีตัวเลือกอื่นนอกเหนือจาก--no-optional
สวิตช์
SO & ถามเรื่องนี้: npm install
ติดตั้งการพึ่งพาทั้งหมดของโครงการของฉันผ่านเครือข่ายแม้ว่าพวกเขาจะถูกติดตั้งหรือพร้อมใช้งานจากแคชแล้วดูเหมือนจะหมายความว่ามี--skip-installed
สวิตช์ แต่เอกสารไม่ได้อ้างอิงถึงสวิตช์นี้
หากคุณกำลังพัฒนาที่node_module
ตัวเองไม่ต้องเสียเวลาของคุณในnpm install
s npm link
แทนการใช้งาน
กล่าวโดยย่อคือคุณสร้างลิงก์สัญลักษณ์ไปยังโฟลเดอร์โมดูลของคุณในโฟลเดอร์โกลบอลที่เป็นเจ้าของ NPM และจากนั้นในโฟลเดอร์แอปของคุณคุณขอให้ npm ใช้โฟลเดอร์ที่เชื่อมโยงสัญลักษณ์นั้น
สิ่งนี้ทำให้การเปลี่ยนแปลงที่คุณทำในโฟลเดอร์โมดูลจะสะท้อนให้เห็นทันทีในแอปของคุณ
นี่คือขั้นตอนหลัก (คัดลอกมาจากบทช่วยสอนที่ลิงก์ด้านล่างอย่าลืมอ่านบทช่วยสอนสำหรับ gotchas ที่สำคัญ):
src/my_module
npm link
" สิ่งนี้จะสร้างลิงก์สัญลักษณ์จากโฟลเดอร์โกลบอลไปยังsrc/my_module
โฟลเดอร์src/my_app
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
คุณลักษณะนี้ได้รับการร้องขอย้อนกลับไปในปี 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
--ignore-package
หรืออะไรบางอย่าง