9.1 KiB
Gitea Self-Hosted npm Registry'ye Yayınlama Kılavuzu
Bu kılavuz, @alper/video-player paketinin Gitea self-hosted npm registry'ye nasıl yayınlanacağını adım adım açıklar.
📋 Ön Gereksinimler
- ✅ Çalışan bir Gitea sunucusu
- ✅ Gitea hesabınıza erişim
- ✅ Node.js ve pnpm/npm kurulu
- ✅ Bu proje build edilmiş durumda
🔑 Adım 1: Gitea Access Token Oluşturma
-
Gitea web arayüzüne giriş yapın
- Tarayıcınızda
https://gitea.yourdomain.comadresine gidin - Kullanıcı adı ve şifrenizle giriş yapın
- Tarayıcınızda
-
Settings sayfasına gidin
- Sağ üst köşedeki profil resmine tıklayın
- "Settings" seçeneğini seçin
-
Applications bölümüne gidin
- Sol menüden "Applications" seçeneğini tıklayın
-
Yeni token oluşturun
- "Generate New Token" butonuna tıklayın
- Token Name:
npm-publish-video-player(veya istediğiniz bir isim) - Permissions (Yetkiler):
- ✅
write:package- Paket yükleme yetkisi - ✅
read:package- Paket okuma yetkisi (diğer projelerde kullanmak için)
- ✅
- "Generate Token" butonuna tıklayın
-
Token'ı kopyalayın
- ⚠️ ÖNEMLİ: Token sadece bir kez gösterilir!
- Token'ı güvenli bir yere kaydedin (örn: password manager)
- Örnek token:
1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t
📝 Adım 2: package.json Dosyasını Düzenleme
package.json dosyasını açın ve aşağıdaki bilgileri kendi Gitea sunucunuza göre düzenleyin:
{
"repository": {
"type": "git",
"url": "https://gitea.yourdomain.com/your-username/video-player.git"
},
"publishConfig": {
"registry": "https://gitea.yourdomain.com/api/packages/your-username/npm/"
}
}
Değiştirilmesi gerekenler:
gitea.yourdomain.com→ Gitea sunucunuzun domain'iyour-username→ Gitea kullanıcı adınız
Örnek:
{
"repository": {
"type": "git",
"url": "https://git.example.com/alper/video-player.git"
},
"publishConfig": {
"registry": "https://git.example.com/api/packages/alper/npm/"
}
}
🔐 Adım 3: npm Login ile Kimlik Doğrulama
Terminal'de aşağıdaki komutu çalıştırın:
npm config set @alper:registry https://gitea.yourdomain.com/api/packages/your-username/npm/
npm login --scope=@alper --registry=https://gitea.yourdomain.com/api/packages/your-username/npm/
Değiştirin:
gitea.yourdomain.com→ Gitea domain'inizyour-username→ Gitea kullanıcı adınız
Giriş bilgileri istenecek:
Username: your-gitea-username
Password: 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t (Adım 1'de oluşturduğunuz token)
Email: your-email@example.com
Not: Password kısmına Gitea şifrenizi değil, token'ı girin!
Başarılı olursa şu mesajı görmelisiniz:
Logged in as your-username on https://gitea.yourdomain.com/api/packages/your-username/npm/.
🏗️ Adım 4: Library Build
Paketi yayınlamadan önce production build alın:
# TypeScript compile ve Vite build
pnpm run build:lib
Build başarılı olduysa:
dist/klasöründe şu dosyalar oluşacak:- ✅
video-player.js(ESM format) - ✅
video-player.umd.cjs(UMD format) - ✅
index.d.ts(TypeScript type definitions) - ✅
style.css(CSS dosyası)
- ✅
Kontrol edin:
ls dist/
# veya Windows'ta:
dir dist\
📤 Adım 5: npm Publish
Artık paketi Gitea registry'ye yayınlayabilirsiniz:
npm publish
Başarılı olursa şu çıktıyı görmelisiniz:
npm notice
npm notice package: @alper/video-player@0.1.0
npm notice === Tarball Contents ===
npm notice 1.2kB package.json
npm notice 8.5kB dist/video-player.js
npm notice 7.8kB dist/video-player.umd.cjs
npm notice 2.1kB dist/index.d.ts
npm notice 3.4kB dist/style.css
npm notice === Tarball Details ===
npm notice name: @alper/video-player
npm notice version: 0.1.0
npm notice package size: 23.0 kB
npm notice unpacked size: 45.2 kB
npm notice total files: 5
+ @alper/video-player@0.1.0
✅ Adım 6: Yayını Doğrulama
Gitea Web Arayüzünde Kontrol
- Gitea'ya giriş yapın
- Üst menüden "Packages" seçeneğine tıklayın
@alper/video-playerpaketini görmelisiniz- Pakete tıklayarak detayları görüntüleyin
Komut Satırından Kontrol
npm view @alper/video-player --registry=https://gitea.yourdomain.com/api/packages/your-username/npm/
🔄 Adım 7: Güncelleme Yayınlama
Paket üzerinde değişiklik yaptığınızda yeni versiyon yayınlamak için:
1. Versiyonu Güncelle
# Patch version (0.1.0 → 0.1.1) - Bug fix
npm version patch
# Minor version (0.1.0 → 0.2.0) - Yeni özellik
npm version minor
# Major version (0.1.0 → 1.0.0) - Breaking change
npm version major
# Veya manuel olarak package.json'da version'ı değiştirin
2. Build Al
pnpm run build:lib
3. Yayınla
npm publish
4. Git'e Push Et (Opsiyonel)
git push && git push --tags
🚀 Diğer Projelerde Kullanma
Adım 1: Diğer Projenizde .npmrc Oluşturun
Projenizin root dizininde .npmrc dosyası oluşturun:
@alper:registry=https://gitea.yourdomain.com/api/packages/your-username/npm/
//gitea.yourdomain.com/api/packages/your-username/npm/:_authToken=${GITEA_TOKEN}
Adım 2: Environment Variable Ayarlayın
# Linux/Mac
export GITEA_TOKEN=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t
# Windows (PowerShell)
$env:GITEA_TOKEN="1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t"
# Veya .env dosyasına ekleyin:
echo "GITEA_TOKEN=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t" >> .env
Adım 3: Paketi Yükleyin
pnpm add @alper/video-player
Adım 4: Kullanın
import { VideoPlayer } from '@alper/video-player';
import '@alper/video-player/styles.css';
function App() {
return <VideoPlayer src="/video.mp4" />;
}
Detaylı kullanım örnekleri için README-USAGE.md dosyasına bakın.
🐛 Sorun Giderme
1. "401 Unauthorized" Hatası
Sebep: Token yanlış veya süresi dolmuş
Çözüm:
# Tekrar login olun
npm login --scope=@alper --registry=https://gitea.yourdomain.com/api/packages/your-username/npm/
2. "403 Forbidden" Hatası
Sebep: Token'da write:package yetkisi yok
Çözüm:
- Gitea'da yeni token oluşturun (Adım 1)
write:packageyetkisini seçin- Yeni token ile login olun
3. "Package already exists" Hatası
Sebep: Aynı versiyonu tekrar yayınlamaya çalışıyorsunuz
Çözüm:
# Versiyonu artırın
npm version patch
npm publish
4. "dist/ folder not found" Hatası
Sebep: Build alınmamış
Çözüm:
pnpm run build:lib
npm publish
5. ".npmrc not working" Sorunu
Sebep: Environment variable ayarlanmamış
Çözüm:
# Token'ı kontrol edin
echo $GITEA_TOKEN # Linux/Mac
echo $env:GITEA_TOKEN # Windows PowerShell
# Ayarlanmamışsa ayarlayın
export GITEA_TOKEN=your-token # Linux/Mac
6. "Cannot find module" Hatası (Diğer Projelerde)
Sebep: .npmrc dosyası yok veya yanlış yapılandırılmış
Çözüm:
.npmrcdosyasının proje root'unda olduğundan emin olun- Registry URL'inin doğru olduğunu kontrol edin
pnpm installveyanpm installkomutunu tekrar çalıştırın
📚 Faydalı Komutlar
# Hangi registry kullanılıyor?
npm config get @alper:registry
# Login durumunu kontrol et
npm whoami --registry=https://gitea.yourdomain.com/api/packages/your-username/npm/
# Paket bilgilerini görüntüle
npm view @alper/video-player
# Yüklü versiyonu kontrol et (diğer projelerde)
pnpm list @alper/video-player
# Tüm npm ayarlarını temizle (sorun yaşıyorsanız)
npm config delete @alper:registry
# Package-lock veya pnpm-lock dosyasını temizle
rm package-lock.json # veya pnpm-lock.yaml
pnpm install
🔒 Güvenlik Notları
-
Token'ları asla git'e commit etmeyin
.npmrcdosyasını.gitignore'a ekleyin- Token'ları environment variable olarak kullanın
-
Token yetkilerini minimumda tutun
- Sadece gerekli yetkileri verin (
read:package,write:package)
- Sadece gerekli yetkileri verin (
-
Token'ları düzenli olarak yenileyin
- Eski token'ları silin
- Yeni token oluşturun ve güncelleyin
-
Production ortamda environment variables kullanın
.envdosyasını git'e eklemeyin- CI/CD sistemlerinde secret manager kullanın
✅ Checklist
Video Player Yayınlama:
- Gitea access token oluşturdum
package.json'darepositoryvepublishConfiggüncelledimnpm loginile kimlik doğrulaması yaptımpnpm run build:libile build aldımnpm publishile yayınladım- Gitea web arayüzünde paketi gördüm
Diğer Projelerde Kullanma:
- Projede
.npmrcdosyası oluşturdum GITEA_TOKENenvironment variable'ını ayarladımpnpm add @alper/video-playerile yükledim- CSS dosyasını import ettim
- VideoPlayer component'ini kullandım
Başarılar! 🎉
Artık video player kütüphanenizi tüm projelerinizde kullanabilirsiniz.