farkmt2official 1
farkmt2official
mannaxxx 1
mannaxxx
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
TuZaKK 1
TuZaKK
Mt2Hizmet 1
Mt2Hizmet
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
kaptanmikro1 1
kaptanmikro1
Hikaye Ekle

[NODE JS] npm install ile Paket Yükleme

  • Konuyu başlatan Konuyu başlatan Silverhand
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 1
  • Görüntüleme Görüntüleme 13

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

nodejs.png


[NODE JS] npm install ile Paket Yükleme​


Selam arkadaşlar. npm install komutu Node.js ekosisteminin en çok kullandığı komuttur. npm registry'sinde bir milyondan fazla paket var ve doğru paketleri seçip doğru şekilde yüklemek kritik bir beceri. Bugün npm install'ın tüm kullanım şekillerini, bayraklarını ve dikkat edilmesi gereken noktaları anlatacağım.

Temel Yükleme İşlemleri​


npm install komutu iki temel şekilde kullanılır: argümansız ve paket adı ile. Argümansız çalıştırdığınızda package.json'daki tüm bağımlılıkları yükler. Paket adı verdiğinizde ise o paketi yükler ve package.json'a ekler. Bayraklar ile hangi bağımlılık türüne ekleneceğini kontrol edebilirsiniz.

Ben yeni bir projeyi klonladığımda ilk yapacağım şey npm install. Bu komut package.json ve package-lock.json dosyalarına bakarak tüm bağımlılıkları node_modules klasörüne indirir. Production ortamında ise npm ci komutunu kullanıyorum çünkü daha hızlı ve tutarlı.

JavaScript:
// === NPM INSTALL KULLANIM ŞEKİLLERİ ===

// Terminalde çalıştırılacak komutlar:

// 1. Tüm bağımlılıkları yükle (package.json'dan)
// npm install
// npm i (kısaltma)

// 2. Production bağımlılığı olarak yükle
// npm install express
// npm i express
// npm install express mongoose dotenv    (birden fazla paket)

// 3. Geliştirme bağımlılığı olarak yükle
// npm install --save-dev jest            (uzun form)
// npm install -D jest                    (kısa form)
// npm i -D eslint prettier nodemon       (birden fazla)

// 4. Global yükleme (sistem genelinde)
// npm install -g nodemon
// npm install -g typescript
// npm install -g pm2

// 5. Belirli versiyon yükleme
// npm install express@4.18.2            (tam versiyon)
// npm install express@4                 (major versiyon)
// npm install express@latest            (en son)
// npm install express@next              (sonraki sürüm, beta olabilir)

// 6. Production bağımlılıklarını yükle (devDependencies hariç)
// npm install --production
// npm install --omit=dev

// 7. Temiz yükleme (CI/CD için, daha hızlı ve tutarlı)
// npm ci

// 8. Paket kaldırma
// npm uninstall express
// npm remove express (alternatif)
// npm rm express     (alternatif)
// npm un express     (kısaltma)

// 9. Global paket kaldırma
// npm uninstall -g nodemon

// 10. Paket güncelleme
// npm update                    (tüm paketleri güncelle)
// npm update express            (belirli paketi güncelle)
// npm outdated                  (güncel olmayan paketleri listele)

// Örnek senaryo: Express API projesi kurulumu
const kurulumAdimlari = [
    'mkdir express-api && cd express-api',
    'npm init -y',
    'npm install express cors helmet morgan dotenv jsonwebtoken bcrypt',
    'npm install -D nodemon jest eslint prettier supertest',
    'npm install mongoose        # MongoDB kullanacaksanız',
    'npm install pg knex         # PostgreSQL kullanacaksanız',
    'npm install redis           # Redis kullanacaksanız'
];

console.log('=== Express API Kurulum Adımları ===');
kurulumAdimlari.forEach((adim, i) => {
    console.log(`${i + 1}. ${adim}`);
});

npm install Bayrakları ve Dikkat Noktaları​


npm install'ın birçok bayrağı var ve bunları bilmek özellikle CI/CD pipeline'larında ve production ortamlarında önemli. Ben özellikle --save-exact bayrağını kritik projelerde kullanıyorum çünkü versiyon aralığı yerine tam versiyonu kilitler.

Bir de şunu söyleyeyim: npm audit komutunu düzenli çalıştırın. Yüklediğiniz paketlerde güvenlik açığı olabilir ve npm audit bunu size söyler. Geçen sene bir projede kullandığımız bir paket ciddi bir güvenlik açığı yüzünden güncellenmesi gerekti, npm audit olmasaydı fark edemezdik.

JavaScript:
// === NPM BAYRAKLARI VE GÜVENLİK ===

// Önemli bayraklar
const bayraklar = [
    { bayrak: '--save-exact / -E', aciklama: 'Tam versiyon kaydeder (^, ~ olmadan)' },
    { bayrak: '--save-dev / -D', aciklama: 'devDependencies'e ekler' },
    { bayrak: '--global / -g', aciklama: 'Global olarak yükler' },
    { bayrak: '--production', aciklama: 'Sadece production bağımlılıkları' },
    { bayrak: '--no-save', aciklama: 'package.json'ı değiştirmez' },
    { bayrak: '--dry-run', aciklama: 'Simülasyon yapar, yüklemez' },
    { bayrak: '--force / -f', aciklama: 'Cache'i yoksayarak yükler' },
    { bayrak: '--legacy-peer-deps', aciklama: 'Peer dependency çakışmalarını yoksayar' },
    { bayrak: '--prefer-offline', aciklama: 'Önce cache'e bakar' }
];

console.log('
=== npm install Bayrakları ===');
console.table(bayraklar);

// npm ci vs npm install farkı
const ciFarklari = [
    { ozellik: 'Hız', npmInstall: 'Yavaş', npmCi: 'Hızlı' },
    { ozellik: 'node_modules', npmInstall: 'Günceller', npmCi: 'Siler ve yeniden oluşturur' },
    { ozellik: 'package-lock.json', npmInstall: 'Güncelleyebilir', npmCi: 'Değiştirmez (hata verir)' },
    { ozellik: 'Tutarlılık', npmInstall: 'Değişebilir', npmCi: 'Her zaman aynı' },
    { ozellik: 'CI/CD için', npmInstall: 'Önerilmez', npmCi: 'Önerilir' }
];

console.log('
=== npm ci vs npm install ===');
console.table(ciFarklari);

// Güvenlik kontrolleri
console.log('
=== Güvenlik Komutları ===');
const guvenlikKomutlari = [
    'npm audit                    -> Güvenlik açıklarını listele',
    'npm audit fix                -> Otomatik düzelt',
    'npm audit fix --force        -> Breaking change olsa bile düzelt',
    'npm audit --json             -> JSON formatında çıktı',
    'npm audit --omit=dev         -> Sadece production paketlerini kontrol et',
    'npx npm-check-updates        -> Güncellenebilecek paketleri listele',
    'npx npm-check-updates -u     -> package.json'ı güncelle'
];

guvenlikKomutlari.forEach(k => console.log(`  ${k}`));

// .npmrc dosyası (proje veya kullanıcı seviyesi ayarlar)
const npmrcOrnegi = `
# .npmrc dosyası
registry=https://registry.npmjs.org/
save-exact=true
engine-strict=true
fund=false
audit-level=moderate
`.trim();

console.log('
=== .npmrc Örneği ===');
console.log(npmrcOrnegi);

// Faydalı npm komutları
const faydaliKomutlar = [
    { komut: 'npm list', aciklama: 'Yüklü paketleri listele' },
    { komut: 'npm list --depth=0', aciklama: 'Sadece üst seviye paketler' },
    { komut: 'npm view express', aciklama: 'Paket bilgilerini göster' },
    { komut: 'npm view express versions', aciklama: 'Tüm versiyonları listele' },
    { komut: 'npm search keyword', aciklama: 'Paket ara' },
    { komut: 'npm doctor', aciklama: 'npm kurulumunu kontrol et' },
    { komut: 'npm cache clean --force', aciklama: 'npm cache'i temizle' },
    { komut: 'npm pack', aciklama: 'Paketi tar.gz olarak paketle' },
    { komut: 'npm link', aciklama: 'Yerel paketi global olarak bağla' }
];

console.log('
=== Faydalı npm Komutları ===');
console.table(faydaliKomutlar);

npm install konusunda en önemli tavsiyem: her zaman package-lock.json dosyasını git'e dahil edin, CI/CD'de npm ci kullanın, düzenli olarak npm audit çalıştırın ve gereksiz paket yüklemekten kaçının. Her eklediğiniz paket potansiyel bir güvenlik riski ve bakım yüküdür. Kolay gelsin.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst