Qual é o significado do directório /dist em projectos de código aberto?
desde que vi pela primeira vez um directório {[[0]} em muitos projectos de código aberto, normalmente no GitHub, tenho-me perguntado o que significa. (Sou estrangeiro, não sou nativo em inglês)
com dist
, vendor
, lib
, src
, e muitos outros nomes de pastas que vemos muitas vezes, eu às vezes me pergunto Como devo nomear minhas próprias pastas.
- src: contém as*fontes**. Às vezes só as fontes puras, às vezes com a versão minificada, depende do projecto.
- fornecedor: contém outras dependências, como outros projectos de código aberto. [[14] lib: boa pergunta, é realmente perto de {[[2]} Na verdade, dependendo do projeto que podemos ver um ou outro ou ambos...
- dist: pelo que eu vi, ele contém os arquivos de "produção", aquele que devemos usar se quisermos usar a biblioteca .
3 answers
Para responder à tua pergunta:
/dist
significa "Distribuição", o código compilado/biblioteca.
A estrutura de pastas varia de acordo com o sistema de compilação e linguagem de programação. Aqui estão algumas convenções padrão:
-
src/
: ficheiros "fonte" para construir e desenvolver o projecto. Este é o lugar onde os arquivos de origem originais estão localizados, antes de ser compilado em menos arquivos paradist/
,public/
oubuild/
. -
dist/
: "distribuição", o código compilado/biblioteca, também nomeadopublic/
oubuild/
. Os arquivos destinados à produção ou uso público estão geralmente localizados aqui. -
lib/
: dependências externas (quando incluídas directamente). -
test/
: o projecto testa scripts, trocos, etc. -
vendor/
: as dependências são normalmente colocadas aqui através da Gestão de dependências. -
bin/
: ficheiros que são adicionados ao seu caminho quando instalados.
Markdown / Ficheiros De Texto:
-
README.md
: um ficheiro de ajuda que endereça a configuração, os tutoriais e documenta o projecto.README.txt
também é utilizado. -
LICENSE.md
: quaisquer direitos dados a si sobre o projecto.LICENSE
ouLICENSE.txt
são variações do nome do ficheiro da licença, com o mesmo conteúdo. -
CONTRIBUTING.md
: Como ajudar com o projecto. Às vezes isto é abordado no ArquivoREADME.md
.
-
package.json
: descreve a biblioteca e as dependências (se um pacote JS). -
composer.json
: igual ao anterior mas para os pacotes PHP via composer. -
.travis.yml
: ficheiro de configuração para o ambienteTravis CI . -
.gitignore
: especificação dos ficheiros significava ser ignorado pelo Git.
Para responder à sua pergunta original sobre o significado da pasta dist
:
O shortform {[[0]} representa distributable
e refere-se a um directório onde os ficheiros serão armazenados que poderão ser directamente utilizados por outros sem a necessidade de compilar ou minificar o código-fonte que está a ser reutilizado.
Exemplo: Se eu quiser usar o código fonte de uma biblioteca Java que alguém escreveu, então você precisa compilar as fontes primeiro para fazer uso dela. Mas se um autor da biblioteca colocar já a versão pré-compiled para o repositório, então você pode apenas ir em frente. Tal versão já compilada é gravada na pasta dist
.
Algo semelhante se aplica aos módulos JavaScript. Normalmente o código JavaScript é minificado e ofuscado para uso na produção. Portanto, se você quiser distribuir uma biblioteca JavaScript, é aconselhável colocar o código fonte simples (não minificado) em um diretório src
(fonte) e a versão minificada e ofuscada no {[[0]} (distribuível) directoy, assim outros podem pegar a versão minificada imediatamente sem ter que minify-lo eles mesmos.
Nota: alguns programadores usam nomes como target
, build
Quer dest
(destino) em vez de dist
. Mas o propósito destas pastas é idêntico.
Resumo das pastas:
- binário
- src: fonte
- incluem: cabeçalhos C / C++
- lib: bibliotecas C / C++
- contrib: contribuição de outras pessoas
- doc / docs: documentação
- man: manual (Unix / Linux)