NPM vs NPX
NPM ve NPX Farki
Daha önce Node.js kullandıysanız kesinlikle npm kullanmışsınızdır.
npm (node package manager), Node.js’yi kurduğunuzda kutudan çıkan bağımlılık/paket yöneticisidir. Geliştiricilerin paketleri hem küresel hem de yerel olarak kurmaları için bir yol sağlar.
Bazen belirli bir pakete göz atmak ve bazı komutları denemek isteyebilirsiniz. Ancak bağımlılıkları yerel node_modules klasörünüze kurmadan bunu yapamazsınız.
Npx’in devreye girdiği yer burasıdır.
Bu yazıda npm ve npx arasındaki farklara bakacağız ve her ikisinden de en iyi şekilde nasıl yararlanabileceğimizi öğreneceğiz.
Öncelikle npm’nin gerçekte ne olduğunu ve onunla neler yapabileceğimizi anlayalım.
npm the package manager
npm birkaç şeydir. Her şeyden önce, açık kaynaklı Node.js projelerinin yayınlanmasına yönelik çevrimiçi bir depodur.
İkincisi, bu paketleri kurmanıza ve sürümlerini ve bağımlılıklarını yönetmenize yardımcı olan bir CLI aracıdır. Npm’de yüz binlerce Node.js kütüphanesi ve uygulaması bulunmaktadır ve her gün çok daha fazlası eklenmektedir.
npm tek başına herhangi bir paketi çalıştırmaz. Bir paketi npm kullanarak çalıştırmak istiyorsanız bu paketi package.json
dosyanızda belirtmeniz gerekir.
Yürütülebilir dosyalar npm paketleri aracılığıyla yüklendiğinde, npm bunlara bağlantılar oluşturur:
- yerel kurulumlarda
./node_modules/.bin/
dizininde oluşturulmuş bağlantılar bulunur - genel kurulumlarda genel bin/ dizininden oluşturulan bağlantılar bulunur (örneğin: Linux’ta
/usr/local/bin
veya Windows’ta%AppData%/npm
)
Bir paketi npm ile çalıştırmak için yerel yolu şu şekilde yazmanız gerekir:
$ ./node_modules/.bin/your-package
veya yerel olarak kurulmuş bir paketi komut dosyaları bölümünde package.json
dosyanıza ekleyerek çalıştırabilirsiniz:
{ "name": "your-application", "version": "1.0.0", "scripts": { "your-package": "your-package" }}
Daha sonra betiği npm run komutunu kullanarak çalıştırabilirsiniz:
npm run your-package
Bir paketi düz npm ile çalıştırmanın oldukça ugras gerektirdiğini görebilirsiniz.
Neyse ki, npx’in kullanışlı olduğu yer burasıdır.
npx the package runner
Npm sürüm 5.2.0’dan beri npx, npm ile önceden paketlenmiştir. Yani bugünlerde neredeyse bir standart.
npx aynı zamanda amacı npm kayıt defterinde barındırılan bağımlılıkların kurulumunu ve yönetimini kolaylaştırmak olan bir CLI aracıdır.
Normalde npm aracılığıyla kuracağınız herhangi bir Node.js tabanlı yürütülebilir dosyayı çalıştırmak artık çok kolay.
Mevcut npm sürümünüz için zaten kurulu olup olmadığını görmek için aşağıdaki komutu çalıştırabilirsiniz:
npx -v
Eger yoksa asagidaki komut ile kurabilirsiniz.
npm install -g npx
Kurduğunuzdan emin olduktan sonra, npx’i son derece yararlı kılan birkaç kullanım örneğine bakalım.
Yerel olarak kurulmuş bir paketi kolayca çalıştırın
Yerel olarak kurulmuş bir paketi çalıştırmak istiyorsanız tek yapmanız gereken şunu yazmaktır:
npx your-package
npx, $PATH
’de veya yerel proje ikili dosyalarında <command>
veya <package>
’in var olup olmadığını kontrol edecek ve eğer öyleyse onu çalıştıracaktır.
Daha önce kurulmamış paketleri yürütün
Bir diğer büyük avantaj ise daha önce kurulmamış bir paketi çalıştırabilme yeteneğidir.
Bunun icin:
npx cowsay wow
Bu harika çünkü bazen yalnızca bazı CLI araçlarını kullanmak istersiniz ancak bunları yalnızca test etmek için küresel olarak yüklemek istemezsiniz.
Bu, bir miktar disk alanından tasarruf edebileceğiniz ve bunları yalnızca ihtiyacınız olduğunda çalıştırabileceğiniz anlamına gelir. Bu aynı zamanda global değişkenlerinizin daha az kirleneceği anlamına da gelir.
Kodu doğrudan GitHub’dan çalıştırın
Herhangi bir GitHub özetini ve deposunu çalıştırmak için npx’i kullanabilirsiniz.
Farklı paket sürümlerini test edin
Detay gelecek
Sonuc
npx, sürüm oluşturma, bağımlılık sorunları ve denemek istediğimiz gereksiz paketlerin kurulmasından kaçınmamıza yardımcı olur.
Ayrıca paketleri, komutları, modülleri ve hatta GitHub özetlerini ve depolarını yürütmenin açık ve kolay bir yolunu sağlar.
Daha önce npx kullanmadıysanız şimdi başlamanın tam zamanı!