오픈 소스 프로젝트에서 / dist 디렉토리의 의미는 무엇입니까?


148

dist/일반적으로 GitHub에서 많은 오픈 소스 프로젝트에서 디렉토리를 보았 기 때문에 그 의미가 무엇인지 궁금했습니다.

dist, vendor, lib, src, 우리가 자주보고 많은 다른 폴더 이름 것을, 나는 가끔 내 자신의 폴더 이름을 지정하는 방법을 생각해 본다.

틀 렸으면 말해줘!

  • src : 소스를 포함 합니다 . 때로는 순수 소스, 때로는 축소 버전의 프로젝트 만 프로젝트에 의존합니다.
  • 공급 업체 : 다른 오픈 소스 프로젝트와 같은 다른 종속성을 포함합니다.
  • lib : 좋은 질문 vendor입니다. 프로젝트에 따라 하나 또는 둘 다 또는 둘 모두를 볼 수있는 것은 실제로 실제로 가깝습니다 .
  • dist : 내가 본 것으로부터 라이브러리 를 사용하기 위해 사용해야하는 "프로덕션"파일이 들어 있습니다 .

오픈 소스가 왜 그렇게 혼란 스러운가? 더 명확하게 할 수 없습니까? 일부 언어는 특정 이름을 사용하기 때문에 적어도 언어 당.


3
또 다른 좋은 대답은 여기 에서 찾을 수 있습니다 .
Skipjack

답변:


252

질문에 대답하려면 :

/dist 컴파일 된 코드 / 라이브러리 인 "배포 가능"을 의미합니다.

폴더 구조는 빌드 시스템 및 프로그래밍 언어에 따라 다릅니다. 다음은 몇 가지 표준 규칙입니다.

  • src/: "소스"파일로 프로젝트를 빌드하고 개발하십시오. 원본 소스 파일이 더 적은을 파일로 컴파일되기 전에 위치하는 곳이다 dist/, public/또는 build/.
  • dist/: "배포", 컴파일 된 코드 / 라이브러리 public/또는 이름도 build/. 프로덕션 또는 공용 파일은 일반적으로 여기에 있습니다.
  • assets/: 이미지, 비디오, 오디오, 글꼴 등과 같은 정적 컨텐츠
  • lib/: 외부 종속성 (직접 포함 된 경우).
  • test/: 프로젝트의 테스트 스크립트, 모의 등
  • node_modules/: Npm에서 사용하는 JS 패키지에 대한 라이브러리 및 종속성을 포함합니다.
  • vendor/: Composer에서 사용하는 PHP 패키지에 대한 라이브러리 및 종속성을 포함합니다.
  • bin/: 설치시 PATH에 추가되는 파일.

마크 다운 / 텍스트 파일 :

  • README.md: 프로젝트의 설정, 튜토리얼 및 문서를 다루는 도움말 파일입니다. README.txt또한 사용됩니다.
  • LICENSE.md: 프로젝트와 관련하여 귀하에게 부여 된 권리 . LICENSE또는 LICENSE.txt내용이 동일한 라이센스 파일 이름의 변형입니다.
  • CONTRIBUTING.md: 프로젝트 를 돕는 방법 . 때때로 이것은 README.md파일 에서 해결 됩니다.

구체적 (이것들은 영원히 지속될 수 있습니다) :

  • package.json: Npm에서 사용하는 JS 패키지의 라이브러리 및 종속성을 정의합니다.
  • package-lock.json:에서 설치되어 package.jsonNpm에서 사용되는 종속성에 대한 특정 버전 잠금 .
  • composer.json: Composer에서 사용하는 PHP 패키지의 라이브러리 및 종속성을 정의합니다.
  • composer.lock:에서 설치되어 종속성에 대한 특정 버전 잠금 ( composer.jsonComposer에서 사용).
  • gulpfile.js: Gulp로 실행할 기능 및 작업을 정의하는 데 사용됩니다.
  • .travis.yml: Travis CI 환경을 위한 구성 파일 .
  • .gitignore: Git에서 무시할 파일의 사양 .

35
의 의미는 dist어떻습니까?
Vadorequest

23
배포판에는 보통 컴파일 된 소프트웨어가 포함됩니다.
0xcaff

2
[정보] 어떤 assets/폴더? 무엇을 포함해야합니까?
Sekhemty

2
@Sekhemty, 이미지, 비디오, 오디오, 글꼴 등과 같은 정적 컨텐츠
Quaker

& public은? app.use (express.static (__ dirname + '/ public')); ?? app.use (express.static (__ dirname + '/ dist')); 좋은 생각이 아닙니다
LOG_TAG

55

dist폴더 의 의미에 대한 원래 질문에 대답하려면 :

축약 형 distdistributable재사용중인 소스 코드를 컴파일하거나 축소 할 필요없이 다른 사람이 직접 사용할 수있는 파일이 저장되는 디렉토리를 나타냅니다.

예 : 누군가 작성한 Java 라이브러리의 소스 코드를 사용하려면 먼저 소스를 컴파일하여 사용해야합니다. 그러나 라이브러리 작성자가 이미 사전 컴파일 된 버전을 리포지토리에 저장 한 경우 계속 진행할 수 있습니다. 이미 컴파일 된 버전은 dist디렉토리에 저장됩니다 .

JavaScript 모듈에도 비슷한 내용이 적용됩니다. 일반적으로 JavaScript 코드는 프로덕션 환경에서 사용하기 위해 축소되고 난독 처리됩니다. 따라서 JavaScript 라이브러리를 배포하려면 일반 (최소화되지 않은) 소스 코드를 src(소스) 디렉토리에, 축소되고 난독 화 된 버전을 dist(배포 가능) Directoy 에 넣는 것이 좋습니다 . 따라서 다른 사람들이 축소 된 버전을 바로 잡을 수 있습니다 스스로 축소하지 않아도됩니다.

참고 : 일부 개발자는 대신 target, build또는 dest(대상) 과 같은 이름을 사용합니다 dist. 그러나이 폴더의 목적은 동일합니다.


11
나는 이것이 가장 좋은 대답이라고 생각합니다. dist는 분배가 아니라 분배 가능을 나타냅니다. 모든 다른 소스와 파일 및 악세사리 등에서 모든 것이 컴파일, gulped, transpiled, 조립 및 생성 된 디렉토리입니다. 이것은 배포 가능하다는 것을 다른 사람들에게 배포하거나 표시하려는 것입니다!
Eric Bishard

3

폴더 요약 :

  • 빈 : 이진
  • src : 소스
  • 포함 : C / C ++ 헤더
  • lib : C / C ++ 라이브러리
  • contrib : 다른 사람들의 공헌
  • doc / docs : 문서
  • man : 수동 (Unix / Linux)

1

사실은! "dist folder"는 프로덕션을 위해 "npm run build"또는 "ng build"또는 "ng build --prod"로 소스 코드를 수정 한 후 얻은 결과입니다.

그 동안에! "dist folder"를받은 후에도 프로젝트 유형에 따라 여전히해야 할 일이 거의 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.