Qual è il significato della directory / dist nei progetti open source?


148

Da quando ho visto per la prima volta una dist/directory in molti progetti open source, di solito su GitHub, mi chiedevo cosa significasse.

Con dist, vendor, lib, src, e molti altri nomi di cartella che si vede abbastanza spesso, a volte mi chiedo come dovrei nominare le mie cartelle.

Correggimi se sbaglio!

  • src: contiene le fonti . A volte solo le fonti pure, a volte con la versione ridotta, dipendono dal progetto.
  • fornitore: contiene altre dipendenze, come altri progetti open source.
  • lib: Bella domanda, in realtà è molto vicino vendor, a seconda del progetto che possiamo vedere l'uno o l'altro o entrambi ...
  • dist: Da quello che ho visto, contiene i file "di produzione", quello che dovremmo usare se vogliamo usare la libreria .

Perché l'open source è così confuso? Non è possibile rendere le cose più chiare? Almeno per lingua perché alcune lingue usano nomi specifici.


3
Un'altra buona risposta può essere trovata qui .
Skipjack,

Risposte:


253

Per rispondere alla tua domanda:

/dist significa "distribuibile", il codice / libreria compilato.

La struttura delle cartelle varia in base al sistema di generazione e al linguaggio di programmazione. Ecco alcune convenzioni standard:

  • src/: file "sorgente" per compilare e sviluppare il progetto. È qui che si trovano i file di origine originali, prima di essere compilati in meno file in dist/, public/o build/.
  • dist/: "distribution", il codice / libreria compilato, anche chiamato public/o build/. I file destinati alla produzione o all'uso pubblico si trovano di solito qui.
  • assets/: contenuto statico come immagini, video, audio, caratteri ecc.
  • lib/: dipendenze esterne (se incluse direttamente).
  • test/: script di test del progetto, simulazioni, ecc.
  • node_modules/: include librerie e dipendenze per i pacchetti JS, utilizzati da Npm.
  • vendor/: include librerie e dipendenze per i pacchetti PHP, usati da Composer.
  • bin/: file che vengono aggiunti al PERCORSO una volta installati.

Markdown / File di testo:

  • README.md: Un file di aiuto che indirizza l'installazione, le esercitazioni e documenta il progetto. README.txtviene anche usato.
  • LICENSE.md: qualsiasi diritto conferito all'utente in merito al progetto. LICENSEo LICENSE.txtsono variazioni del nome del file di licenza, con lo stesso contenuto.
  • CONTRIBUTING.md: come dare una mano con il progetto. A volte questo è risolto nel README.mdfile.

Specifico (questi potrebbero andare avanti per sempre):

  • package.json: definisce le librerie e le dipendenze per i pacchetti JS, utilizzati da Npm.
  • package-lock.json: blocco versione specifico per dipendenze installate da package.json, utilizzato da Npm.
  • composer.json: definisce le librerie e le dipendenze per i pacchetti PHP, usati da Composer.
  • composer.lock: blocco versione specifico per dipendenze installato da composer.json, utilizzato da Composer.
  • gulpfile.js: utilizzato per definire funzioni e attività da eseguire con Gulp.
  • .travis.yml: file di configurazione per l' ambiente Travis CI .
  • .gitignore: Specifica dei file che devono essere ignorati da Git.

35
Che dire del significato di dist?
Vadorequest,

23
distribuzione, di solito contiene il software compilato.
0xcaff

2
E la assets/cartella? Cosa dovrebbe contenere?
Sekhemty,

2
@Sekhemty, contenuti statici come immagini, video, audio, caratteri ecc.
Quaker,

e pubblico significava? app.use (express.static (__ dirname + '/ public')); ?? app.use (express.static (__ dirname + '/ dist')); non è una buona idea
LOG_TAG

55

Per rispondere alla domanda originale sul significato della distcartella:

La forma abbreviata diststa per distributablee si riferisce a una directory in cui verranno memorizzati i file che possono essere utilizzati direttamente da altri senza la necessità di compilare o minimizzare il codice sorgente che viene riutilizzato.

Esempio: se voglio usare il codice sorgente di una libreria Java che qualcuno ha scritto, allora devi prima compilare i sorgenti per usarlo. Ma se un autore di librerie inserisce già la versione precompilata nel repository, allora puoi semplicemente andare avanti. Tale versione già compilata viene salvata nella distdirectory.

Qualcosa di simile si applica ai moduli JavaScript. Di solito il codice JavaScript è minimizzato e offuscato per l'uso in produzione. Pertanto, se si desidera distribuire una libreria JavaScript, è consigliabile inserire il codice sorgente semplice (non minimizzato) in una srcdirectory (sorgente) e la versione minimizzata e offuscata nella directory dist(distribuibile), in modo che altri possano prendere la versione ridotta via senza dover minimizzare da soli.

Nota: alcuni sviluppatori usano nomi come target, buildo dest(destinazione) invece di dist. Ma lo scopo di queste cartelle è identico.


11
Penso che questo risponda meglio alla domanda. dist sta per distribuibile, non per distribuzione. È la directory che una volta che tutto è stato compilato, inghiottito, traspilato, assemblato e prodotto da tutte le altre fonti, file e cianfrusaglie ecc. Questo è ciò che si desidera distribuire o indicare agli altri che è distribuibile!
Eric Bishard,

3

Riepilogo delle cartelle:

  • bin: binari
  • src: fonte
  • include: intestazioni C / C ++
  • lib: librerie C / C ++
  • contributo: contributo di altre persone
  • doc / docs: documentazioni
  • uomo: manuale (Unix / Linux)

1

In realtà! "cartella dist" è il risultato che si ottiene dopo aver modificato un codice sorgente con "npm run build" o "ng build" o "ng build --prod" per la produzione.

Nel frattempo! Dopo aver ottenuto la "cartella dist" potrebbero esserci ancora alcune cose che devi ancora fare a seconda del tipo di progetto ✌️

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.