უკან დაბრუნება
npm v12 დეფოლტად დაბლოკავს ინსტალაციის სკრიპტებს და Git დამოკიდებულებებს
SiTech AI Team2 წთ. საკითხავი

npm v12 დეფოლტად დაბლოკავს ინსტალაციის სკრიპტებს და Git დამოკიდებულებებს

GitHub-მა npm v12-ის გარდამტეხი ცვლილებები გამოაქვეყნა: დამოკიდებულებების ინსტალაციის სკრიპტები, Git-ის და დისტანციური URL-ის დამოკიდებულებები დეფოლტად გამორთული იქნება. გამოშვება 2026 წლის ივლისშია მოსალოდნელი.

რა იცვლება npm v12-ში

GitHub-მა გამოაქვეყნა იმ ცვლილებების სია, რომლებიც npm-ის მომდევნო ძირითად ვერსიასთან, v12-თან ერთად შევა ძალაში. გამოშვება 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-ში და რეპოზიტორში უნდა ჩაიდოს.

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-ით ნახეთ, რომელ პაკეტებს აქვთ სკრიპტები, დააშვით სანდოები და ჩაიდეთ განახლებული package.json. განახლების შემდეგ მხოლოდ დაშვებული სკრიპტები გაგრძელდება — დაუშვებელი უბრალოდ შეწყდება. დოკუმენტაცია npm approve-scripts-ის, npm deny-scripts-ის და allow-scripts კონფიგურაციის (რომელსაც npx და გლობალური ინსტალაციები იყენებენ) შესახებ npm-ის დოკუმენტაციის საიტზეა, განხილვა კი GitHub Community-ში მიმდინარეობს.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.