
npm v12-ը լռելյայն կարգելափակի տեղադրման սկրիպտներն ու Git կախվածությունները
GitHub-ը հրապարակել է npm v12-ի փոփոխությունների ցանկը. կախվածությունների տեղադրման սկրիպտները, Git կախվածությունները և հեռավոր URL-երից եկող կախվածությունները կանջատվեն լռելյայն։ Թողարկումը սպասվում է 2026 թվականի հուլիսին։
Ինչ է փոխվում npm v12-ում
GitHub-ը հրապարակել է այն փոփոխությունների ցանկը, որոնք կգան npm v12-ի հետ՝ JavaScript-ի փաթեթների կառավարչի հաջորդ հիմնական տարբերակով, որը սպասվում է 2026 թվականի հուլիսին։ Թողարկումը npm install-ի մի քանի ավտոմատ վարքագիծ դարձնում է քայլեր, որոնք մշակողները պետք է բացահայտ թույլատրեն։ Բոլոր փոփոխությունները արդեն երևում են որպես զգուշացումներ npm 11.16.0-ում և ավելի նոր տարբերակներում, այնպես որ նախագծերը կարող են նախապես պատրաստվել։
Տեղադրման սկրիպտները թույլտվություն են պահանջում
Ամենամեծ փոփոխությունն այն է, որ allowScripts-ը լռելյայն անջատված կլինի։ Թարմացումից հետո npm install-ը այլևս չի կատարի կախվածությունների preinstall, install և postinstall սկրիպտները, եթե դրանք նախագծում բացահայտ չեն թույլատրվել։ Սա վերաբերում է նաև native node-gyp կառուցումներին. փաթեթը, որը պարունակում է binding.gyp ֆայլ, բայց չունի առանձին install սկրիպտ, միևնույն է կարգելափակվի, քանի որ npm-ը նրա համար անուղղակիորեն կատարում է node-gyp rebuild։ Git-, ֆայլային և link կախվածությունների prepare սկրիպտները նույն կերպ են արգելափակվում։
Ինչ կարգելափակվի՝ տեսնելու համար կատարեք npm approve-scripts --allow-scripts-pending, ապա վստահելի փաթեթները թույլատրեք npm approve-scripts-ով, իսկ մնացածը արգելեք npm deny-scripts-ով։ Ստացված թույլտվությունների ցանկը գրվում է package.json-ում և պետք է commit արվի պահոցում։
Git-ի և հեռավոր կախվածությունները լռելյայն անջատված են
Եվս երկու դրոշակ փոխում է լռելյայն արժեքը։ --allow-git-ը դառնում է none, ուստի npm install-ը այլևս չի լուծի Git կախվածություններ՝ ուղիղ թե անցողիկ, եթե դրանք բացահայտ չեն թույլատրվել։ GitHub-ի խոսքով՝ սա փակում է կոդի կատարման ուղին, երբ Git կախվածության .npmrc ֆայլը կարող էր փոխարինել Git-ի կատարվող ֆայլը նույնիսկ --ignore-scripts-ի դեպքում։ Փոփոխությունն առաջին անգամ հայտարարվել է 2026 թվականի փետրվարի 18-ին և հասանելի է npm 11.10.0-ից սկսած։
--allow-remote-ի լռելյայնը նույնպես none է դառնում. հեռավոր URL-երից, օրինակ HTTPS tarball-ներից, եկող կախվածությունները բացահայտ թույլտվության բացակայության դեպքում այլևս չեն լուծվի։ Դրոշակը հասանելի է 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-ում։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։