* * *

npm frontend geliştiriciler tarafından sıkça kullanılan ve proje içerisinde ihtiyaç duyduğumuz javascript paketlerini indirebildiğimiz bir araçtır. Bu araç ile kullanmak istediğimiz paketleri local veya global olarak yükleyebiliriz.

Bir javascript paketi proje içerisinde kullanılıp kaynak koda dahil olabileceği gibi kaynak koda dahil olmadan bir takım görevleri yerine getirmek için de kullanılabilir. Kaynak koda dahil olmayan paketler genellikle cli üzerinden üstlendikleri görevi yerine getirirler. mocha, gulp, create-react-app bu tip paketlere örnektir.

Cli üzerinden çalışan paketler genellikle golabl olarak indirilip paket isimleriyle çağırılırlar. Fakat global olarak paket kurmanın aşağıdaki gibi bazı dezavantajları olabilir:

  • Projeler farklı versiyondaki global paketlere ihtiyaç duyabilir.
  • Kullanıcının global olarak paket kurmaya izni olmayabilir.
  • Global paketler disk'de gereksiz yer kaplarlar.

npm@5.2.0 versiyonuyla birlikte herhangi bir paketi global olarak kurmadan da çalıştırabilen npx hayatımıza girdi. npx herhangi bir paketi çalıştırmak için önce local'deki node_modules klasörüne bakar, eğer bu klasörde istenilen paketi bulamazsa bu paketi kurar ve çalıştırır. Kurulan paket de herhangi bir yerde depolanmaz.

npx create-react-app my-example-app

Yukarıdaki örnekte create-react-appile bir proje oluşturmak istediğimizde öncelikle npx local ortamımızda create-react-app paketinin var olup olmadığına bakacak var ise çalıştıracak eğer böyle bir paket yoksa bu paketi indirdikten sonra çalıştıracaktır.

npm install --save-dev gulp gulp-cli

gulp # gulp is not recognized as an internal or external command

./node_modules/.bin/gulp # node_modules altından paket çalıştırmak

npx gulp # npx ile local bir paket çalıştırmak

Yukarıdaki örnekte de proje bağımlılığı olarak kurduğumuz gulp paketini ismiyle çalıştırmak istediğimizde maalesef hata alıyoruz. Çünkü bir javascript paketini ismiyle çalıştımak için global olarak yüklememiz gerekir. Çözüm olarak node_modules altından bu paketi çalıştırabilir veya npx ile kolayca local ortamımızdaki paketi ismiyle çalıştırabiliriz.

* * *

Yorumlar

Soru, cevap ve destekleriniz için aşağıdan yorum bırakmayı unutmayın.

* * *
Webpack Nedir ve Nasıl Kullanılır?React Context Api Nedir? Nasıl Kullanılır?