Understanding OSS Directories
The following description of typical folders you see in open (and closed) source projects was taken from stackoverflow.
src/
: "source" files to build and develop the project. This is where the original source files are located, before being compiled into fewer files todist/
,public/
orbuild/
.dist/
: "distribution", the compiled code/library, also namedpublic/
,build/
, ortarget/
. The files meant for production or public use are usually located here.There may be a slight difference between these three:
build/
: is a compiled version of yoursrc/
but not a production-ready.dist/
: is a production-ready compiled version of your code.public/
: usually used as the files runs on the browser. which it may be the server-side JS and also include some HTML and CSS.
assets/
: static content like images, video, audio, fonts etc.lib/
: external dependencies (when included directly).test/
: the project's tests scripts, mocks, etc.node_modules/
: includes libraries and dependencies for JS packages, used by Npm.vendor/
: includes libraries and dependencies for PHP packages, used by Composer.bin/
: files that get added to your PATH when installed.
Markdown/Text Files:
README.md
: A help file which addresses setup, tutorials, and documents the project.README.txt
is also used.LICENSE.md
: any rights given to you regarding the project.LICENSE
orLICENSE.txt
are variations of the license file name, having the same contents.CONTRIBUTING.md
: how to help out with the project. Sometimes this is addressed in theREADME.md
file.
Specific (these could go on forever):
package.json
: defines libraries and dependencies for JS packages, used by Npm.package-lock.json
: specific version lock for dependencies installed frompackage.json
, used by Npm.composer.json
: defines libraries and dependencies for PHP packages, used by Composer.composer.lock
: specific version lock for dependencies installed fromcomposer.json
, used by Composer.gulpfile.js
: used to define functions and tasks to be run with Gulp..travis.yml
: config file for the Travis CI environment..gitignore
: Specification of the files meant to be ignored by Git.