Odkąd po raz pierwszy zobaczyłem dist/
katalog w wielu projektach open source, zwykle na GitHubie, zastanawiałem się, co to znaczy.
Z dist
, vendor
, lib
, src
, i wiele innych nazw folderów, które widzimy dość często, czasami zastanawiam się, w jaki sposób należy wymienić własne foldery.
Popraw mnie, jeśli się mylę!
- src: zawiera źródła . Czasami tylko czyste źródła, czasami z wersją zminimalizowaną, zależą od projektu.
- sprzedawca: zawiera inne zależności, podobnie jak inne projekty open source.
- lib: Dobre pytanie, jest naprawdę blisko
vendor
, w zależności od projektu możemy zobaczyć jeden lub drugi lub oba ... - dist: Z tego co widziałem, zawiera pliki "produkcyjne", z których powinniśmy skorzystać, jeśli chcemy skorzystać z biblioteki .
Dlaczego open source jest tak zagmatwany? Czy nie można zrobić rzeczy jaśniej? Przynajmniej na język, ponieważ niektóre języki używają określonych nazw.
github
open-source
Vadorequest
źródło
źródło
Odpowiedzi:
Odpowiedzieć na Twoje pytanie:
/dist
oznacza „dystrybuowalny”, skompilowany kod / bibliotekę.Struktura folderów różni się w zależności od systemu kompilacji i języka programowania. Oto kilka standardowych konwencji:
src/
: pliki „źródłowe” do tworzenia i rozwijania projektu. To gdzie oryginalne pliki źródłowe znajdują, zanim zostanie skompilowany do mniejszej liczby plików dodist/
,public/
lubbuild/
.dist/
: "dystrybucja", skompilowany kod / biblioteka, również nazywanapublic/
lubbuild/
. Pliki przeznaczone do produkcji lub użytku publicznego zwykle znajdują się tutaj.assets/
: treści statyczne, takie jak obrazy, wideo, audio, czcionki itp.lib/
: zależności zewnętrzne (jeśli są dołączone bezpośrednio).test/
: projekt testuje skrypty, makiety itp.node_modules/
: zawiera biblioteki i zależności dla pakietów JS, używane przez Npm.vendor/
: zawiera biblioteki i zależności dla pakietów PHP używane przez Composera.bin/
: pliki, które są dodawane do twojej PATH podczas instalacji.Pliki Markdown / tekstowe:
README.md
: Plik pomocy, który dotyczy instalacji, samouczków i dokumentacji projektu.README.txt
jest również używany.LICENSE.md
: wszelkie prawa przyznane w związku z projektem.LICENSE
lubLICENSE.txt
są odmianami nazwy pliku licencji, mającymi tę samą zawartość.CONTRIBUTING.md
: jak pomóc w projekcie. Czasami jest to opisane wREADME.md
pliku.Konkretne (mogą trwać wiecznie):
package.json
: definiuje biblioteki i zależności dla pakietów JS, używane przez Npm.package-lock.json
: specyficzna blokada wersji dla zależności zainstalowanych zpackage.json
, używana przez Npm.composer.json
: definiuje biblioteki i zależności dla pakietów PHP używane przez Composera.composer.lock
: specyficzna blokada wersji dla zależności zainstalowanych zcomposer.json
, używana przez Composer.gulpfile.js
: używany do definiowania funkcji i zadań do uruchomienia z Gulp..travis.yml
: plik konfiguracyjny dla środowiska Travis CI ..gitignore
: Specyfikacja plików, które mają być ignorowane przez Git.źródło
dist
?assets/
folderem? Co ma zawierać?Aby odpowiedzieć na pierwotne pytanie dotyczące znaczenia
dist
folderu:Shortform
dist
oznaczadistributable
i odnosi się do katalogu, w którym będą przechowywane pliki, które mogą być bezpośrednio wykorzystane przez innych bez potrzeby kompilacji lub Minify kodu źródłowego, który jest ponownie wykorzystane.Przykład: Jeśli chcę użyć kodu źródłowego biblioteki Java, którą ktoś napisał, musisz najpierw skompilować źródła, aby z niego skorzystać. Ale jeśli autor biblioteki umieści już prekompilowaną wersję w repozytorium, możesz po prostu iść dalej. Taka już skompilowana wersja jest zapisywana w
dist
katalogu.Coś podobnego dotyczy modułów JavaScript. Zwykle kod JavaScript jest zminimalizowany i zaciemniony do użycia w środowisku produkcyjnym. Dlatego, jeśli chcesz rozpowszechniać bibliotekę JavaScript, zaleca się umieszczenie zwykłego (nie zminimalizowanego) kodu
src
źródłowego w katalogu (źródłowym), a zminimalizowaną i zaciemnioną wersję wdist
(dystrybuowalnym) Directoy, aby inni mogli prawidłowo pobrać zminimalizowaną wersję bez konieczności ich samodzielnego zmniejszania.Uwaga: niektórzy programiści używają nazw takich jak
target
,build
lubdest
(miejsce docelowe) zamiastdist
. Ale cel tych folderów jest identyczny.źródło
Podsumowanie folderów:
źródło
Tak właściwie! „folder dist” to wynik uzyskany po zmodyfikowaniu kodu źródłowego za pomocą „npm run build”, „ng build” lub „ng build --prod” do celów produkcyjnych.
W międzyczasie! Po pobraniu „folderu dist” może być jeszcze kilka rzeczy do zrobienia w zależności od typu projektu ✌️
źródło