Qual é o significado do diretório / dist em projetos de código aberto?

148

Desde que vi pela primeira vez um dist/diretório em muitos projetos de código aberto, geralmente no GitHub, fiquei pensando o que isso significa.

Com dist, vendor, lib, src, e muitos outros nomes de pastas que vemos muitas vezes, às vezes me pergunto como devo nomear minhas próprias pastas.

Corrija-me se eu estiver errado!

  • src: Contém as fontes . Às vezes, apenas as fontes puras, às vezes com a versão minificada, dependem do projeto.
  • fornecedor: contém outras dependências, como outros projetos de código aberto.
  • lib: Boa pergunta, é realmente muito próximo vendor, dependendo do projeto, podemos ver um ou outro ou ambos ...
  • dist: Pelo que vi, ele contém os arquivos de "produção", o que devemos usar se quisermos usar a biblioteca .

Por que o código aberto é tão confuso? Não é possível fazer as coisas com mais clareza? Pelo menos por idioma, porque alguns idiomas usam nomes específicos.

Vadorequest
fonte
3
Outra boa resposta pode ser encontrada aqui .
Skipjack

Respostas:

251

Para responder sua pergunta:

/dist significa "distribuível", o código / biblioteca compilado.

A estrutura de pastas varia de acordo com o sistema de compilação e a linguagem de programação. Aqui estão algumas convenções padrão:

  • src/: arquivos "de origem" para criar e desenvolver o projeto. É aqui que os arquivos de origem originais estão localizados, antes de serem compilados em menos arquivos para dist/, public/ou build/.
  • dist/: "distribuição", o código / biblioteca compilado, também chamado public/ou build/. Os arquivos destinados à produção ou uso público geralmente estão localizados aqui.
  • assets/: conteúdo estático, como imagens, vídeo, áudio, fontes etc.
  • lib/: dependências externas (quando incluídas diretamente).
  • test/: scripts de testes do projeto, zombarias etc.
  • node_modules/: inclui bibliotecas e dependências para pacotes JS, usados ​​pelo Npm.
  • vendor/: inclui bibliotecas e dependências para pacotes PHP, usados ​​pelo Composer.
  • bin/: arquivos que são adicionados ao seu PATH quando instalados.

Markdown / arquivos de texto:

  • README.md: Um arquivo de ajuda que aborda a instalação, os tutoriais e documenta o projeto. README.txttambém é usado.
  • LICENSE.md: quaisquer direitos concedidos a você em relação ao projeto. LICENSEou LICENSE.txtsão variações do nome do arquivo de licença, com o mesmo conteúdo.
  • CONTRIBUTING.md: como ajudar com o projeto. Às vezes isso é endereçado no README.mdarquivo.

Específico (isso pode durar para sempre):

  • package.json: define bibliotecas e dependências para pacotes JS, usados ​​pelo Npm.
  • package-lock.json: bloqueio de versão específica para dependências instaladas a partir de package.json, usadas pelo Npm.
  • composer.json: define bibliotecas e dependências para pacotes PHP, usados ​​pelo Composer.
  • composer.lock: bloqueio de versão específica para dependências instaladas composer.json, usadas pelo Composer.
  • gulpfile.js: usado para definir funções e tarefas a serem executadas com o Gulp.
  • .travis.yml: arquivo de configuração para o ambiente do Travis CI .
  • .gitignore: Especificação dos arquivos que devem ser ignorados pelo Git.
0xcaff
fonte
35
E o significado de dist?
Vadorequest
23
distribuição, geralmente contém o software compilado.
0xcaff
2
E a assets/pasta? O que deveria conter?
Sekhemty 15/03/19
2
@Sekhemty, conteúdo estático, como imagens, vídeo, áudio, fontes etc.
Quaker
& público destinado a? app.use (express.static (__ dirname + '/ public')); ?? app.use (express.static (__ dirname + '/ dist')); não é uma boa ideia
LOG_TAG
54

Para responder à sua pergunta original sobre o significado da distpasta:

O atalho distrepresenta distributablee refere-se a um diretório em que os arquivos serão armazenados que podem ser usados ​​diretamente por outras pessoas, sem a necessidade de compilar ou minificar o código-fonte que está sendo reutilizado.

Exemplo: se eu quiser usar o código-fonte de uma biblioteca Java que alguém escreveu, será necessário compilar as fontes primeiro para usá-lo. Mas se o autor de uma biblioteca já colocar a versão pré-compilada no repositório, você poderá seguir em frente. Essa versão já compilada é salva no distdiretório.

Algo semelhante se aplica aos módulos JavaScript. Normalmente, o código JavaScript é minificado e ofuscado para uso na produção. Portanto, se você deseja distribuir uma biblioteca JavaScript, é recomendável colocar o código-fonte simples (não minificado) em um srcdiretório (fonte) e a versão minificada e ofuscada no diretório dist(distribuível), para que outros possam pegar a versão minificada corretamente embora sem ter que reduzi-los eles mesmos.

Nota: Alguns desenvolvedores usam nomes como target, buildou dest(destino) em vez de dist. Mas o objetivo dessas pastas é idêntico.

Benny Neugebauer
fonte
11
Eu acho que isso melhor responde à pergunta. dist significa distribuível, não distribuição. É o diretório que, uma vez que tudo foi compilado, engolido, transpilado, montado e produzido a partir de todas as outras fontes, arquivos e bugigangas, etc.
Eric Bishard
3

Resumo das pastas:

  • bin: binários
  • src: fonte
  • incluem: cabeçalhos C / C ++
  • bibliotecas lib: C / C ++
  • contrib: contribuição de outras pessoas
  • doc / docs: documentações
  • man: manual (Unix / Linux)
Travor Liu
fonte
1

Na realidade! "pasta dist" é o resultado que você obtém após modificar um código fonte com "npm run build" ou "ng build" ou "ng build --prod" para produção.

Entretanto! Depois de obter a "pasta dist", ainda existem poucas coisas que você ainda precisa fazer, dependendo do tipo de projeto ✌️

Oyeleye Oluwasegun
fonte