Sejak saya pertama kali melihat dist/
direktori di banyak proyek open source, biasanya di GitHub, saya bertanya-tanya apa artinya.
Dengan dist
, vendor
, lib
, src
, dan banyak nama folder lain yang kita lihat cukup sering, kadang-kadang saya bertanya-tanya bagaimana saya harus nama folder saya sendiri.
Koreksi saya jika saya salah!
- src: Berisi sumber . Terkadang hanya sumber murni, terkadang dengan versi yang diperkecil, bergantung pada proyek.
- vendor: Berisi dependensi lain, seperti proyek open source lainnya.
- lib: Pertanyaan bagus, sebenarnya sangat dekat
vendor
, tergantung pada proyek kita dapat melihat satu atau lainnya atau keduanya ... - dist: Dari apa yang saya lihat, ini berisi file "produksi", yang harus kita gunakan jika kita ingin menggunakan perpustakaan .
Mengapa open source sangat membingungkan? Bukankah mungkin melakukan sesuatu dengan lebih jelas? Setidaknya per bahasa karena beberapa bahasa menggunakan nama tertentu.
github
open-source
Vadorequest
sumber
sumber
Jawaban:
Untuk menjawab pertanyaan Anda:
/dist
berarti "dapat didistribusikan", kode / pustaka yang dikompilasi.Struktur folder bervariasi menurut sistem build dan bahasa pemrograman. Berikut beberapa ketentuan standar:
src/
: file "sumber" untuk membangun dan mengembangkan proyek. Di sinilah file sumber asli berada, sebelum dikompilasi menjadi lebih sedikit file kedist/
,public/
ataubuild/
.dist/
: "distribusi", kode / pustaka yang dikompilasi, juga bernamapublic/
ataubuild/
. File yang dimaksudkan untuk produksi atau penggunaan publik biasanya ada di sini.assets/
: konten statis seperti gambar, video, audio, font, dll.lib/
: ketergantungan eksternal (bila disertakan secara langsung).test/
: skrip pengujian proyek, tiruan, dll.node_modules/
: termasuk pustaka dan dependensi untuk paket JS, yang digunakan oleh Npm.vendor/
: termasuk pustaka dan dependensi untuk paket PHP, yang digunakan oleh Composer.bin/
: file yang ditambahkan ke PATH Anda saat diinstal.Markdown / File Teks:
README.md
: File bantuan yang membahas pengaturan, tutorial, dan mendokumentasikan proyek.README.txt
juga digunakan.LICENSE.md
: hak apa pun yang diberikan kepada Anda terkait proyek.LICENSE
atauLICENSE.txt
variasi dari nama file lisensi, yang memiliki konten yang sama.CONTRIBUTING.md
: cara membantu proyek. Terkadang ini dialamatkan diREADME.md
file.Spesifik (ini bisa berlangsung selamanya):
package.json
: mendefinisikan pustaka dan dependensi untuk paket JS, yang digunakan oleh Npm.package-lock.json
: kunci versi khusus untuk dependensi yang diinstal daripackage.json
, digunakan oleh Npm.composer.json
: mendefinisikan pustaka dan dependensi untuk paket PHP, yang digunakan oleh Composer.composer.lock
: kunci versi khusus untuk dependensi yang diinstal daricomposer.json
, digunakan oleh Composer.gulpfile.js
: digunakan untuk menentukan fungsi dan tugas yang akan dijalankan dengan Gulp..travis.yml
: file config untuk lingkungan Travis CI ..gitignore
: Spesifikasi file yang dimaksudkan untuk diabaikan oleh Git.sumber
dist
?assets/
foldernya? Apa yang seharusnya mengandung?Untuk menjawab pertanyaan awal Anda tentang arti
dist
folder:Bentuk singkatnya
dist
adalahdistributable
dan mengacu pada direktori tempat file akan disimpan yang dapat langsung digunakan oleh orang lain tanpa perlu mengkompilasi atau mengecilkan kode sumber yang sedang digunakan kembali.Contoh: Jika saya ingin menggunakan kode sumber pustaka Java yang ditulis seseorang, maka Anda perlu mengkompilasi sumber terlebih dahulu untuk memanfaatkannya. Tetapi jika seorang penulis perpustakaan telah menempatkan versi yang telah dikompilasi ke dalam repositori, maka Anda dapat melanjutkan. Versi yang sudah dikompilasi tersebut disimpan ke dalam
dist
direktori.Hal serupa berlaku untuk modul JavaScript. Biasanya kode JavaScript diminimalkan dan disamarkan untuk digunakan dalam produksi. Oleh karena itu, jika Anda ingin mendistribusikan pustaka JavaScript, disarankan untuk meletakkan kode sumber biasa (bukan yang diperkecil) ke dalam
src
direktori (sumber) dan versi yang diperkecil dan dikaburkan ke dalam direktoridist
(dapat didistribusikan), sehingga orang lain dapat mengambil versi yang diperkecil dengan benar. pergi tanpa harus mengecilkannya sendiri.Catatan: Beberapa pengembang menggunakan nama seperti
target
,build
ataudest
(tujuan) sebagai gantidist
. Tetapi tujuan folder-folder ini identik.sumber
Ringkasan folder:
sumber
Sebenarnya! "folder dist" adalah hasil yang Anda dapatkan setelah memodifikasi kode sumber dengan "npm run build" atau "ng build" atau "ng build --prod" untuk produksi.
Sementara itu! Setelah mendapatkan "folder dist", mungkin masih ada beberapa hal yang perlu Anda lakukan bergantung pada jenis proyek Anda ✌️
sumber