开源项目中/ dist目录的含义是什么?
由于我第一次在许多开源项目中看到dist/
目录,通常在GitHub上,我一直在想这是什么意思。 (我是外国人,英文不是母语)
有了dist
, vendor
, lib
, src
和我们经常看到的许多其他文件夹名称,我有时会想知道如何命名我自己的文件夹。
如我错了请纠正我!
- 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中,这样其他人可以把缩小的版本,而不必自行缩小。
注意:有些开发人员使用target
, build
或dest
(目的地)而不是dist
。 但这些文件夹的目的是相同的。
文件夹摘要:
- bin:二进制文件
- src:source
- 包括:C / C ++头文件
- lib:C / C ++库
- 贡献:来自其他人的贡献
- doc / docs:文件
- man:手册(Unix / Linux)