การใช้งาน npm ของฉันคือการสร้าง css / js ขนาดเล็ก / uglified และสร้างจาวาสคริปต์ที่จำเป็นในหน้าที่ให้บริการโดยแอปพลิเคชัน django ในแอปพลิเคชันของฉัน Javascript ทำงานบนหน้าเว็บเพื่อสร้างภาพเคลื่อนไหวบางครั้งทำการโทร ajax ทำงานภายในกรอบงาน VUE และ / หรือทำงานกับ css หาก package-lock.json มีอำนาจในการควบคุมสิ่งที่อยู่ใน package.json อาจจำเป็นต้องมีไฟล์หนึ่งเวอร์ชัน จากประสบการณ์ของฉันมันไม่ส่งผลกระทบต่อสิ่งที่ติดตั้งโดยการติดตั้ง npm หรือหากมันไม่ได้มีผลกระทบกับแอพพลิเคชั่นที่ฉันปรับใช้กับความรู้ของฉัน ฉันไม่ได้ใช้ mongodb หรือแอปพลิเคชันอื่น ๆ ที่เป็นไคลเอ็นต์แบบบาง
ฉันลบ package-lock.json จาก repo เนื่องจากการติดตั้ง npm สร้างไฟล์นี้และการติดตั้ง npm เป็นส่วนหนึ่งของกระบวนการปรับใช้บนเซิร์ฟเวอร์แต่ละเครื่องที่เรียกใช้แอป การควบคุมเวอร์ชันของโหนดและ npm นั้นทำได้ด้วยตนเองในแต่ละเซิร์ฟเวอร์ แต่ฉันระวังว่ามันเหมือนกัน
เมื่อnpm install
รันบนเซิร์ฟเวอร์จะเปลี่ยน package-lock.json และหากมีการเปลี่ยนแปลงไฟล์ที่ repo บันทึกไว้บนเซิร์ฟเวอร์การปรับใช้ WONT ครั้งต่อไปจะช่วยให้คุณสามารถดึงการเปลี่ยนแปลงใหม่จากแหล่งกำเนิด นั่นคือคุณไม่สามารถปรับใช้เนื่องจากการดึงจะเขียนทับการเปลี่ยนแปลงที่ทำกับ package-lock.json
คุณไม่สามารถเขียนทับ package-lock.json ที่สร้างขึ้นภายในเครื่องด้วยสิ่งที่อยู่บน repo (รีเซ็ตต้นแบบแหล่งกำเนิดฮาร์ด) เนื่องจาก npm จะบ่นเมื่อคุณออกคำสั่งเมื่อใดก็ตามที่ package-lock.json ไม่สะท้อนสิ่งที่อยู่ใน node_modules เนื่องจากการติดตั้ง npm ดังนั้นการทำลายการปรับใช้ ตอนนี้ถ้าสิ่งนี้บ่งชี้ว่าเวอร์ชันที่แตกต่างกันเล็กน้อยถูกติดตั้งใน node_modules อีกครั้งที่ไม่เคยทำให้ฉันเกิดปัญหา
หาก node_modules ไม่ได้อยู่บน repo ของคุณ (และไม่ควรเป็น) ดังนั้น package-lock.json ควรถูกละเว้น
หากฉันหายไปบางอย่างโปรดแก้ไขฉันในความคิดเห็น แต่ประเด็นที่การควบคุมเวอร์ชันนั้นนำมาจากไฟล์นี้ไม่สมเหตุสมผล ไฟล์ package.json มีหมายเลขเวอร์ชั่นอยู่และฉันถือว่าไฟล์นี้เป็นไฟล์ที่ใช้ในการสร้างแพ็คเกจเมื่อการติดตั้ง npm เกิดขึ้นเช่นเดียวกับเมื่อฉันลบมันการติดตั้ง npm จะบ่นดังนี้:
jason@localhost:introcart_wagtail$ rm package.json
jason@localhost:introcart_wagtail$ npm install
npm WARN saveError ENOENT: no such file or directory, open '/home/jason/webapps/introcart_devtools/introcart_wagtail/package.json'
และบิลด์ล้มเหลวอย่างไรก็ตามเมื่อติดตั้ง node_modules หรือใช้ npm เพื่อบิลด์ js / css จะไม่มีการร้องเรียนหากฉันลบ package-lock.json
jason@localhost:introcart_wagtail$ rm package-lock.json
jason@localhost:introcart_wagtail$ npm run dev
> introcart@1.0.0 dev /home/jason/webapps/introcart_devtools/introcart_wagtail
> NODE_ENV=development webpack --progress --colors --watch --mode=development
10% building 0/1 modules 1 active ...
git log
ง่ายต่อการจัดการกับ