If you were in search on how to create a directory tree structure dynamically like those beautiful directory trees you see in some github repositories then look no further.

While I was doing my own research on the subject I came upon this very easy-to-use library that can do it for you.

Introducing dree

As the name might suggest, dree is a nodejs module that helps generate a directory as an object or as a string representation.

Usually we are interested in the string representation and that is what I am going to showcase here.

Installation

npm install -g dree

Usage

dree parse < source > --dest < outputDirectory > --name < filename > dree parse ./ --dest ./ --name result

What the above command will do is to scan current directory and save the output in result.txt in same directory.

Output

The output in the results.txt file will be something like the following:

petroskyriakoublog ├── .prettierrc ├─ > .vscode │ └── settings.json ├── LICENSE ├── README.md ├── gatsby-browser.js ├── gatsby-config.js ├── gatsby-node.js ├── gatsby-ssr.js ├── package.json ├── result.txt ├─ > src │ ├── blog-config.js │ ├─ > components .. .

Advanced usage

In the output above, I deliberately excluded some directories that I did not want to display like the node_modules folder or the .git directory.

To do that you add an --exclude flag to the command like so:

dree parse ./ --dest ./ --name result --exclude .git node_modules

Conclusion

This is a really handy way to generate dynamically a directory tree and the dree can do so much more if you take a look at its documentation.

Until next time!