开源项目中/ dist目录的含义是什么?

由于我第一次在许多开源项目中看到dist/目录,通常在GitHub上,我一直在想这是什么意思。 (我是外国人,英文不是母语)

有了distvendorlibsrc和我们经常看到的许多其他文件夹名称,我有时会想知道如何命名我自己的文件夹。

如我错了请纠正我!

  • src:包含*来源**。 有时只有纯粹的来源,有时与缩小版本,取决于项目。
  • vendor:与其他开源项目一样,包含其他依赖项。
  • lib:很好的问题,它实际上与vendor非常接近,取决于项目,我们可以看到其中一个或另一个或两个。
  • dist:从我所看到的,它包含“生产”文件,如果我们要使用库,应该使用的文件。

为什么开源如此令人困惑? 不可能更清楚地做事情吗? 至less每种语言,因为一些语言使用特定的名称。

回答主要问题…

/dist :“分发”,编译后的代码/库。

文件夹结构因构build系统和语言而异。 这里有一些标准的惯例

  • src/ :“source”文件来构build和开发项目。
  • dist/ :“distribution”,编译的代码/库。
  • lib/ :外部依赖(直接包含)。
  • test/ :项目的testing脚本,嘲笑等
  • vendor/ :依赖通常通过依赖pipe理放在这里。
  • bin/ :安装时添加到PATH中的文件。

文件:

  • README.md :总是先阅读。
  • LICENCE.md :你可以/不能使用该项目。
  • CONTRIBUTING.md : 如何帮助项目。

具体(这些可以永远持续下去):

  • package.json :描述库和依赖(如果是一个JS包)。
  • composer.json :与通过作曲者的PHP包相同。
  • .travis.yml :Travis CI环境的描述符。

要回答关于dist文件夹的含义的原始问题:

简写dist代表可distributable ,指的是存储文件的目录,可以被其他人直接使用,而不需要编译或缩小被重用的源代码。

例如:如果我想使用某人编写的Java库的源代码,那么您需要首先编译源以利用它。 但是,如果库作者已经将预编译的版本放到版本库中,那么你可以继续。 这样一个已编译的版本被保存到dist目录中。

类似的东西适用于JavaScript模块。 通常JavaScript代码被缩小和混淆以供在生产中使用。 因此,如果你想分发一个JavaScript库,build议将纯文本(不是缩小的)源代码放到src (源代码)目录中,将缩小的和模糊的文本放到dist (可分发)的directoy中,这样其他人可以把缩小的版本,而不必自行缩小。

注意:有些开发人员使用targetbuilddest (目的地)而不是dist 。 但这些文件夹的目的是相同的。

文件夹摘要:

  • bin:二进制文件
  • src:source
  • 包括:C / C ++头文件
  • lib:C / C ++库
  • 贡献:来自其他人的贡献
  • doc / docs:文件
  • man:手册(Unix / Linux)