การเปลี่ยนแปลงหลักของ pnpm 11

  • ต้องใช้ Node.js 22+: ตอนนี้จำเป็นต้องใช้ Node.js เวอร์ชัน 22 ขึ้นไป ยุติการรองรับ Node 18, 19, 20 และ 21 แล้ว สำหรับไฟล์แบบสแตนด์อโลน (Standalone) ต้องใช้ glibc 2.27 ขึ้นไป
  • เปิดใช้การป้องกันซัพพลายเชน (Supply-chain protection) เป็นค่าเริ่มต้น: เพื่อเสริมความปลอดภัย ค่าเริ่มต้นของ minimumReleaseAge จะถูกตั้งเป็น 1440 (1 วัน) (แพ็กเกจที่เพิ่งเผยแพร่จะติดตั้งได้หลังผ่านไป 24 ชั่วโมง) นอกจากนี้ blockExoticSubdeps จะเป็น true โดยค่าเริ่มต้นด้วย
  • เพิ่ม allowBuilds: การตั้งค่าที่เกี่ยวกับการบิลด์แบบเดิมซึ่งซับซ้อน (onlyBuiltDependencies, onlyBuiltDependenciesFile, neverBuiltDependencies, ignoredBuiltDependencies, ignoreDepScripts) ถูกลบออกทั้งหมด และรวมให้จัดการผ่าน allowBuilds เพียงตัวเดียว
  • แยกการติดตั้งแบบโกลบอล: เมื่อติดตั้งผ่าน pnpm add -g แต่ละแพ็กเกจจะถูกติดตั้งในไดเรกทอรีอิสระที่มี package.json, node_modules และ lockfile ของตัวเอง ช่วยป้องกันการชนกันของ dependency ระหว่างแพ็กเกจแบบโกลบอล
  • ดัชนีสโตร์บน SQLite (Store v11): นำ SQLite มาใช้จัดการดัชนีเพื่อลด syscall และปรับปรุงความเร็วในการติดตั้งอย่างมาก
  • โฟลว์การเผยแพร่แบบเนทีฟ (Publish): คำสั่ง pnpm publish, login, logout, view, deprecate, unpublish, dist-tag, version จะทำงานแบบเนทีฟบน pnpm โดยไม่ต้องพึ่งพา npm CLI อีกต่อไป
  • จำกัดบทบาทของ .npmrc: ตอนนี้ .npmrc ใช้ได้เฉพาะสำหรับการยืนยันตัวตน (auth) และการตั้งค่ารีจิสทรีเท่านั้น การตั้งค่าอื่นทั้งหมดต้องย้ายไปที่ pnpm-workspace.yaml หรือ config.yaml แบบโกลบอลตัวใหม่ และตัวแปรสภาพแวดล้อมจะใช้คำนำหน้า pnpm_config_*

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น