/ dist目录在开源项目中是什么意思?


146

自从我dist/在许多开源项目(通常在GitHub)上首次看到目录以来,我一直在想它的含义。

随着distvendorlibsrc,和许多其他的文件夹名称,我们看到很多时候,我有时想,我应该怎样命名我自己的文件夹。

如我错了请纠正我!

  • src:包含。有时,只有纯资源(有时带有缩小版本)取决于项目。
  • 供应商:包含其他依赖项,例如其他开源项目。
  • lib:好问题,vendor实际上真的很接近,具体取决于我们可以看到一个或另一个项目,或者两者兼有...
  • dist:据我所知,它包含“生产”文件,如果要使用该库,则应使用该文件。

为什么开源如此混乱?事情做得更清楚吗?至少每种语言都使用,因为某些语言使用特定的名称。


3
这里可以找到另一个很好的答案。
Skipjack'1

Answers:


249

要回答您的问题:

/dist 表示“可分发”,即已编译的代码/库。

文件夹结构因构建系统和编程语言而异。以下是一些标准约定:

  • src/:“源”文件以构建和开发项目。这是原始的源文件的位置,被编译成更少的文件之前dist/public/build/
  • dist/:“发行版”,已编译的代码/库,也称为public/build/。供生产或公共使用的文件通常位于此处。
  • assets/:静态内容,例如图像,视频,音频,字体等。
  • lib/:外部依赖项(直接包含时)。
  • test/:项目的测试脚本,模拟等。
  • node_modules/:包括Npm使用的JS软件包的库和依赖项。
  • vendor/:包括Composer使用的PHP软件包的库和依赖项。
  • bin/:安装后添加到PATH的文件。

Markdown /文本文件:

  • README.md:一个帮助文件,用于解决项目的设置,教程和文档。README.txt也被使用。
  • LICENSE.md:授予您有关该项目的任何权利LICENSE或者LICENSE.txt是许可文件名的变体,具有相同的内容。
  • CONTRIBUTING.md:如何为项目提供帮助。有时这在README.md文件中已解决。

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

  • package.json:定义Npm使用的JS软件包的库和依赖项。
  • package-lock.jsonpackage.jsonNpm使用从安装的依赖项的特定版本锁。
  • composer.json:定义Composer使用的PHP软件包的库和依赖项。
  • composer.lockcomposer.json由Composer使用的从安装的依赖项的特定版本锁。
  • gulpfile.js:用于定义与Gulp一起运行的功能和任务。
  • .travis.ymlTravis CI环境的配置文件。
  • .gitignore:Git 忽略的文件规范。

34
那是什么意思dist呢?
Vadorequest 2014年

22
发布,它通常包含编译的软件。
0xcaff 2014年

2
怎么样的assets/文件夹?应该包含什么?
Sekhemty

2
@Sekhemty,静态内容,例如图像,视频,音频,字体等。–
Quaker

和公开意味着什么?app.use(express.static(__ dirname +'/ public')); ?? app.use(express.static(__ dirname +'/ dist')); 这不是一个好主意
LOG_TAG,

52

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

简称dist代表distributable并指向一个目录,该目录将存储文件,其他人可以直接使用它们,而无需编译或缩小正在重复使用的源代码。

示例:如果我要使用某人编写的Java库的源代码,则需要首先编译源代码以使用它。但是,如果图书馆作者已经将预编译的版本放入存储库中,则可以继续进行。这样已编译的版本将保存到dist目录中。

类似的情况适用于JavaScript模块。通常,JavaScript代码会经过精简和混淆,以用于生产中。因此,如果要分发JavaScript库,建议将原始(未压缩的)源代码放入src(源)目录中,并将经过压缩和混淆的版本放入dist(可分发)目录中,以便其他人可以正确地获取经过压缩的版本无需自己缩小尺寸。

注意:某些开发人员使用targetbuilddest(目标)之类的名称代替dist。但是这些文件夹的目的是相同的。


10
我认为这最好地回答了这个问题。dist表示可分发,而不是分发。在所有其他来源,文件和小装饰品等所有内容都被编译,吞噬,转译,组装和生成之后,它就是该目录。这是您要分发的内容或向他人表明它是可分发的!
埃里克·比斯哈德

3

文件夹摘要:

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

1

其实!“ dist文件夹”是在使用“ npm run build”或“ ng build”或“ ng build --prod”修改源代码以进行生产后获得的结果。

与此同时!在获取“ dist文件夹”之后,根据项目类型✌️可能仍然需要做几件事

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.