Что означает каталог /dist в проектах с открытым исходным кодом?

С тех пор, как я впервые увидел dist/ каталог во многих проектах с открытым исходным кодом, обычно на GitHub, мне было интересно, что это значит. (Я иностранец, не родной на английском языке)

С dist, vendor, lib, src и многие другие имена папок, которые мы видим довольно часто, я иногда задаюсь вопросом, как я должен называть свои собственные папки.

поправьте меня, если я ошибаюсь!

  • src: содержит * источники**. Иногда только чистые источники, иногда с уменьшенная версия, зависит от проекта.
  • поставщик: содержит другие зависимости, как и другие проекты с открытым исходным кодом.
  • lib: хороший вопрос, это действительно близко к vendor на самом деле, в зависимости от проекта мы можем видеть один или другой или оба...
  • dist: из того, что я видел, он содержит файлы "производство", тот, который мы должны использовать, если мы хотим использовать библиотека.

почему с открытым исходным кодом так запутано? Разве это невозможно? сделать вещи более ясными? По крайней мере, для каждого языка, потому что некоторые языки используют определенные имена.

3 ответов


чтобы ответить на ваш вопрос:

/dist означает "распространение", скомпилированный код / библиотека.

структура папок зависит от системы сборки и языка программирования. Вот некоторые стандартные соглашения:

  • src/:" исходные " файлы для создания и разработки проекта. Здесь находятся исходные исходные файлы, прежде чем они будут скомпилированы в меньшее количество файлов в dist/, public/ или build/.
  • dist/: "дистрибутив", скомпилированный код / библиотека, также называется public/ или build/. Файлы, предназначенные для производства или общественного использования, обычно находятся здесь.
  • lib/: внешние зависимости (при включении напрямую).
  • test/: скрипты тестов проекта, насмешки и т. д.
  • vendor/: зависимости обычно помещаются здесь через управление зависимостями.
  • bin/: файлы, которые добавляются в ваш путь, когда установленный.

Markdown / Текстовые Файлы:

  • README.md: файл справки, который адресует установку, учебники и документы проекта. README.txt также используется.
  • LICENSE.md: все прав дано вам относительно проекта. LICENSE или LICENSE.txt являются вариациями имени файла лицензии, имеющие одинаковое содержимое.
  • CONTRIBUTING.md: как помочь С проектом. Иногда это адресовано в the .

конкретные (они могут продолжаться вечно):

  • package.json: описывает библиотеку и зависимости (если пакет JS).
  • composer.json: то же, что и выше, но для пакетов PHP через composer.
  • .travis.yml: config для Трэвис ки окружающая среда.
  • .gitignore: спецификация файлов означала игнорировать С помощью Git.

чтобы ответить на ваш первоначальный вопрос о значении :

shortform dist расшифровывается как distributable и относится к каталогу, где будут храниться файлы, которые могут быть непосредственно использованы на другие без необходимости компиляции или уменьшать исходный код, который используется повторно.

пример: если я хочу использовать исходный код библиотеки Java, которую кто-то написал, то вам нужно сначала скомпилировать источники, чтобы использовать его. Но если автор библиотеки помещает уже предварительно скомпилированную версию в репозиторий, вы можете просто продолжить. Такая уже скомпилированная версия сохраняется в .

нечто подобное относится и к модулям JavaScript. Обычно код JavaScript минимизируется и запутывается для использования в производстве. Поэтому, если вы хотите распространять библиотеку JavaScript, рекомендуется поместить простой (не уменьшенный) исходный код в src (источник) каталог и уменьшенный и запутанная версия в dist (distributable) directoy, поэтому другие могут схватить уменьшенную версию сразу же без необходимости уменьшать ее сами.

Примечание: некоторые разработчики используют такие имена, как target, build или dest (пункт назначения) вместо dist. Но назначение этих папок идентично.


сводка папок:

  • bin: двоичные файлы
  • src: source
  • включить: C / C++ заголовки
  • lib: библиотеки C / C++
  • contrib: вклад от других людей
  • doc / docs: documentations
  • man: руководство (Unix / Linux)