Açık kaynaklı projelerde / dist dizininin anlamı nedir?


148

dist/Birçok açık kaynak projesinde, genellikle GitHub'da bir dizin gördüğümden beri, bunun ne anlama geldiğini merak ediyorum.

İle dist, vendor, lib, src, biz oldukça sık görmek ve diğer birçok klasör adları olduğunu, bazen ben kendi klasörleri adlandırmalıyım merak ediyorum.

Yanlışsam düzelt!

  • src: Kaynakları içerir . Bazen sadece saf kaynaklar, bazen küçültülmüş versiyon ile projeye bağlıdır.
  • satıcı: Diğer açık kaynaklı projeler gibi diğer bağımlılıkları da içerir.
  • lib: Güzel soru, gerçekten yakın vendor, projeye bağlı olarak birini veya diğerini veya her ikisini de görebiliyoruz ...
  • dist: Gördüğüm kadarıyla, kütüphaneyi kullanmak istiyorsak kullanmamız gereken "üretim" dosyalarını içeriyor .

Açık kaynak neden bu kadar kafa karıştırıcı? İşleri daha net yapmak mümkün değil mi? En azından her dil için belirli diller belirli adlar kullandığından dil başına.


3
Başka bir iyi cevap burada bulunabilir .
Yazılı

Yanıtlar:


253

Soruna cevap vermek için:

/dist "dağıtılabilir", derlenmiş kod / kütüphane anlamına gelir.

Klasör yapısı derleme sistemine ve programlama diline göre değişir. İşte bazı standart sözleşmeler:

  • src/: "kaynak" proje oluşturmak ve geliştirmek için dosyaları. Orijinal kaynak dosyaları daha az dosyalarına derlenmiş önce, bulunduğu yerdir dist/, public/ya build/.
  • dist/: "dağıtım", derlenmiş kod / kütüphane, ayrıca public/veya build/. Üretim veya kamusal kullanım amaçlı dosyalar genellikle burada bulunur.
  • assets/: resimler, video, ses, yazı tipleri vb. gibi statik içerik.
  • lib/: harici bağımlılıklar (doğrudan dahil edildiğinde).
  • test/: projenin senaryolarını, alaylarını vb. test eder.
  • node_modules/: Npm tarafından kullanılan JS paketleri için kütüphaneleri ve bağımlılıkları içerir.
  • vendor/: Composer tarafından kullanılan PHP paketleri için kütüphaneleri ve bağımlılıkları içerir.
  • bin/: kurulduğunda PATH'nize eklenen dosyalar.

Markdown / Metin Dosyaları:

  • README.md: Kurulum, öğreticiler ve projeyi belgeleyen bir yardım dosyası. README.txtayrıca kullanılır.
  • LICENSE.md: proje ile ilgili olarak size verilen tüm haklar . LICENSEveya LICENSE.txtaynı içeriğe sahip lisans dosyası adının varyasyonlarıdır.
  • CONTRIBUTING.md: projeye nasıl yardımcı olunur . Bazen bu README.mddosyada ele alınır .

Spesifik (bunlar sonsuza kadar devam edebilir):

  • package.json: Npm tarafından kullanılan JS paketleri için kitaplıkları ve bağımlılıkları tanımlar.
  • package-lock.json: package.jsonNpm tarafından kullanılan, yüklenen bağımlılıklar için özel sürüm kilidi .
  • composer.json: Composer tarafından kullanılan PHP paketleri için kütüphaneleri ve bağımlılıkları tanımlar.
  • composer.lock: composer.jsonComposer tarafından kullanılan, yüklenen bağımlılıklar için özel sürüm kilidi .
  • gulpfile.js: Gulp ile yürütülecek işlevleri ve görevleri tanımlamak için kullanılır.
  • .travis.yml: Travis CI ortamı için yapılandırma dosyası .
  • .gitignore: Git tarafından yoksayılmak istenen dosyaların özellikleri .

35
Anlamı ne olacak dist?
Vadorequest

23
dağıtım, genellikle derlenmiş yazılımı içerir.
0xcaff

2
Peki ya assets/klasör? Neleri içermesi gerekiyor?
1919'da Sekhemty

2
@Sekhemty, görüntüler, video, ses, yazı tipleri vb. Gibi statik içerik
Quaker

& herkese açık mı? app.use (express.static (__ dirname + '/ public')); ?? app.use (express.static (__ dirname + '/ dist')); iyi bir fikir değil
LOG_TAG

55

distKlasörün anlamı hakkındaki orijinal sorunuzu cevaplamak için :

Kısa form dist, distributableyeniden kullanılmakta olan kaynak kodunu derlemeye veya küçültmeye gerek kalmadan başkaları tarafından doğrudan kullanılabilecek dosyaların saklanacağı bir dizini ifade eder ve belirtir.

Örnek: Birisinin yazdığı bir Java kütüphanesinin kaynak kodunu kullanmak istersem, kullanmak için önce kaynakları derlemeniz gerekir. Ancak, bir kütüphane yazarı önceden derlenmiş sürümü depoya koyarsa, devam edebilirsiniz. Bu tür önceden derlenmiş bir sürüm distdizine kaydedilir .

Benzer bir şey JavaScript modülleri için de geçerlidir. Genellikle JavaScript kodu üretimde kullanım için küçültülür ve gizlenir. Bu nedenle, bir JavaScript kitaplığını dağıtmak istiyorsanız, düz (küçültülmemiş) kaynak kodunu bir src(kaynak) dizine ve küçültülmüş ve gizlenmiş sürümü dist(dağıtılabilir) dizinine koymanız önerilir, böylece diğerleri küçültülmüş sürümü sağa alabilir kendileri küçültmek zorunda kalmadan.

Not: Bazı geliştiriciler yerine target, buildveya dest(hedef) gibi adlar kullanır dist. Ancak bu klasörlerin amacı aynıdır.


11
Bence bu en iyi soruyu cevaplıyor. dist dağıtım değil, dağıtılabilir anlamına gelir. Her şey derlendi, yuttu, aktarıldı, bir araya getirilmiş ve diğer tüm kaynak ve dosya ve biblolar vb. Üretilen dizindir. Bu dağıtmak veya başkalarına dağıtılabilir olduğunu göstermek istiyorum!
Eric Bishard

3

Klasörlerin özeti:

  • bin: ikili dosyalar
  • src: kaynak
  • şunlardır: C / C ++ başlıkları
  • lib: C / C ++ kütüphaneleri
  • katkıda bulunmak: diğer insanlardan katkı
  • doc / docs: belgeler
  • erkek: manuel (Unix / Linux)

1

Aslında! "dağıtım klasörü", kaynak kodunu "npm run build" veya "ng build" veya "ng build --prod" ile değiştirdikten sonra elde ettiğiniz sonuçtur.

O esnada! "Dağıtım klasörü" aldıktan sonra, proje türünüze bağlı olarak yapmanız gereken birkaç şey olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.