NPX Nedir?
NPM sadece bir paket yöneticisidir. Paketleri yüklemek, kaldırmak ve güncellemek için kullanırız. NodeJS ile CLI uygulamaları oluşturmaya başladığımızda bazı sorunlar ortaya çıktı.
NPM de kullanacağımız CLI uygulamalarını global
olarak bilgisayarımıza yüklememiz gerekiyordu. Bu da dizinlerde yazma izinleri ya da aynı paketin birden fazla versiyonunu kullanamama gibi bazen bazı sorunlara neden oluyordu. Ya da bir CLI uygulamasını hızlıca kullanabilmenin yanında zahmetli kalıyordu.
v5.2.0 sürümü ile birlikte NPM npx
adında bir aracı duyurdu. Bu araç bir CLI uygulamasının bilgisayarımızda global
olarak kurulu olsun ya da olmasın kullanılabilmesini sağlıyor.
Örneğin v5.2.0 sürümünden önce create-react-app
CLI uygulamasıyla bir proje oluşturmak için önce bu paketi global olarak kurmak ve daha sonra çalıştırmak gerekiyordu.
Fakat npx
ile birlikte artık bir CLI uygulamasını kalıcı olarak kurmadanda kullanabiliyoruz.
Ayrıca o an ihtiyacımız olan spesifik bir versiyon ile çalışabiliyoruz.
Bu yönüyle farklı node bağımlılığı olan projelerde (nvm
— Node Version Manager) gibi araçlardan kaçınmamıza olanak sağlıyor.
npx
komutu çalıştırıldığında belirtilen paketi global olarak kurulmuş paketler arasında arar. Eğer daha önceden yüklenmiş bir paketse lokalden kullanarak hızlıca çalıştırır. Fakat yüklenmemiş bir paketi kullanmak istersek, önce paketin dosyalarını geçici olarak yüklemek için bekletecek daha sonra komutu çalıştıracaktır.
Ayrıca npx
‘in bir şeyleri çalıştırma gücü npm paketleri ile sınırlı değildir. Doğrudan bir url aracılığıyla Github Gist üzerindeki rastgele bir kod parçacığını çalıştırabilirsiniz.
Fakat bu serbestlik, çalıştırdığımız kodun güvenilirliği hakkında ekstra dikkat gerektirir.
Happy Coding!
Kaynakça:
NPM Docs — https://docs.npmjs.com/cli/v7/commands/npx
NodeJS.dev— https://nodejs.dev/learn/the-npx-nodejs-package-runner