חזרה
npm v12 יחסום כברירת מחדל סקריפטי התקנה ותלויות Git
SiTech AI Team2 წთ. საკითხავი

npm v12 יחסום כברירת מחדל סקריפטי התקנה ותלויות Git

GitHub פרסמה את רשימת השינויים השוברים ב-npm v12: סקריפטי התקנה של תלויות, תלויות Git ותלויות מכתובות URL מרוחקות יהיו כבויים כברירת מחדל. הגרסה צפויה ביולי 2026 והאזהרות כבר מופיעות ב-npm 11.16.0 ואילך.

מה משתנה ב-npm v12

GitHub פרסמה את רשימת השינויים השוברים שיגיעו עם npm v12, הגרסה המאג'ורית הבאה של מנהל החבילות של JavaScript, הצפויה ביולי 2026. הגרסה הופכת כמה התנהגויות אוטומטיות של npm install לצעדים שהמפתחים חייבים לאשר במפורש. כל השינויים כבר מוצגים כאזהרות ב-npm 11.16.0 ואילך, כך שפרויקטים יכולים להיערך לפני השדרוג.

סקריפטי התקנה דורשים אישור

השינוי הגדול הוא ש-allowScripts יהיה כבוי כברירת מחדל. לאחר השדרוג npm install לא יריץ יותר סקריפטי preinstall, install ו-postinstall מתלויות, אלא אם הם אושרו במפורש בפרויקט. זה כולל בניות node-gyp מקומיות: חבילה שמכילה קובץ binding.gyp בלי סקריפט התקנה מפורש עדיין תיחסם, משום ש-npm מריץ עבורה באופן מרומז node-gyp rebuild. סקריפטי prepare מתלויות Git, קבצים ו-link נחסמים באותו אופן.

כדי לראות מה ייחסם אפשר להריץ npm approve-scripts --allow-scripts-pending, אחר כך לאשר את החבילות המהימנות עם npm approve-scripts ולחסום את השאר עם npm deny-scripts. רשימת ההיתרים שנוצרת נכתבת ל-package.json וכדאי לבצע לה commit במאגר.

תלויות Git ומרוחקות כבויות כברירת מחדל

שני דגלים נוספים משנים את ברירת המחדל שלהם. --allow-git יהפוך ל-none, כך ש-npm install לא יפתור תלויות Git, ישירות או עקיפות, בלי אישור מפורש. לדברי GitHub, הדבר סוגר נתיב הרצת קוד שבו קובץ .npmrc של תלות Git יכול היה לעקוף את קובץ ההרצה של Git גם בעבודה עם --ignore-scripts. השינוי הוכרז לראשונה ב-18 בפברואר 2026 והוא זמין ב-npm 11.10.0 ואילך.

גם --allow-remote יעמוד על none: תלויות מכתובות URL מרוחקות, למשל קבצי tar ב-HTTPS, לא ייפתרו בלי אישור מפורש. הדגל זמין ב-npm 11.15.0 ואילך. הדגלים הקשורים --allow-file ו---allow-directory לא משנים את ברירת המחדל ב-v12.

איך להיערך

העצה של GitHub היא לשדרג ל-npm 11.16.0 ואילך, להריץ התקנה רגילה ולעבור על האזהרות. לאחר מכן להשתמש ב-npm approve-scripts --allow-scripts-pending כדי לראות אילו חבילות כוללות סקריפטים, לאשר את המהימנות ולבצע commit ל-package.json המעודכן. אחרי השדרוג רק סקריפטים מאושרים ימשיכו לרוץ — כל מה שלא אושר פשוט ייעצר. תיעוד ל-npm approve-scripts, ל-npm deny-scripts ולקונפיגורציית allow-scripts שמשמשת את npx ואת ההתקנות הגלובליות זמין באתר התיעוד של npm, והדיון מתנהל ב-GitHub Community.

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.