npm v12 đã GA: npm install giờ xin phép trước khi chạy mã dependency
npm v12 đã được gắn thẻ latest. allowScripts mặc định tắt, còn --allow-git và --allow-remote là none. Lifecycle script và build node-gyp ngầm đều cần phê duyệt.
Điều gì thay đổi
npm v12 đã được gắn thẻ latest. allowScripts mặc định tắt, còn --allow-git và --allow-remote là none. Lifecycle script và build node-gyp ngầm đều cần phê duyệt.
Policy rõ ràng
Chạy npm approve-scripts --allow-scripts-pending, kiểm tra từng package rồi chỉ cho phép script thực sự cần thiết. Commit policy allowScripts vào package.json.
Tác động CI
Ưu tiên kiểm thử native addon, dependency Git, remote tarball, workspace và cold install không cache. Cache cũ có thể che giấu approval còn thiếu.
Publish an toàn
Khi publish, hãy thay token dài hạn bằng trusted publishing qua OIDC. Package quan trọng có thể dùng npm stage publish và phê duyệt 2FA của con người.
Checklist npm v12
✓Audit pending scripts.
✓Pin approval theo version.
✓Test cold install trong CI.
✓Chuyển sang OIDC hoặc staging.
Nguồn
- GitHub Changelog: npm install-time security and GAT bypass2fa deprecation
- GitHub Changelog: Upcoming breaking changes for npm v12
- npm Docs: npm approve-scripts
- npm Docs: npm deny-scripts
- npm Docs: Staged publishing for npm packages
- npm Docs: Trusted publishing for npm packages
- Reddit r/javascript: Upcoming breaking changes for npm v12