npm v12 เป็น GA: npm install ต้องขออนุญาตก่อนรันโค้ด dependency

Dev

npm v12 ได้แท็ก latest แล้ว ค่าเริ่มต้นของ allowScripts เป็นปิด ส่วน --allow-git และ --allow-remote เป็น none ทำให้ lifecycle script และ build node-gyp แบบอัตโนมัติต้องได้รับอนุมัติ

npm v12 เป็น GA: npm install ต้องขออนุญาตก่อนรันโค้ด dependency
npm v12 ปิด install script, Git dependency และ remote URL โดยค่าเริ่มต้น แนวทางย้าย native module, CI และ publishing อย่างปลอดภัย

สิ่งที่เปลี่ยน

npm v12 ได้แท็ก latest แล้ว ค่าเริ่มต้นของ allowScripts เป็นปิด ส่วน --allow-git และ --allow-remote เป็น none ทำให้ lifecycle script และ build node-gyp แบบอัตโนมัติต้องได้รับอนุมัติ

Policy แบบชัดเจน

ใช้ npm approve-scripts --allow-scripts-pending เพื่อดู package ที่ต้องรันโค้ด ตรวจสอบที่มา แล้วอนุมัติเฉพาะที่จำเป็น จากนั้น commit policy allowScripts ใน package.json

ผลต่อ CI

ควรทดสอบ native addon, Git dependency, remote tarball, workspace และ cold install ที่ไม่มี cache เพราะ cache เก่าอาจซ่อน approval ที่ขาดอยู่

Publish อย่างปลอดภัย

ฝั่ง publish ควรเปลี่ยน token ระยะยาวเป็น trusted publishing ผ่าน OIDC และใช้ npm stage publish พร้อมการอนุมัติ 2FA สำหรับ package สำคัญ

เช็กลิสต์ npm v12

ตรวจ pending scripts ทั้งหมด

ผูก approval กับ version

ทดสอบ cold install ใน CI

ย้าย publishing ไป OIDC หรือ staging

แหล่งข้อมูล

다른 글