Returns the file, folder or both structure from a given source in JSON or YML. Includes depth, file size and file type.
This plugin requires Grunt ~0.4.2
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-folder-list --save-devOnce the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-folder-list');In your project's Gruntfile, add a section named folder_list to the data object passed into grunt.initConfig().
The plugin will return the following for each file it finds.
{
"location" : "anothefolder/anotherfile.js",
"filename" : "anotherfile.js",
"filetype" : "js""type" : "file",
"size" : 0,
"depth" : 1,
}The plugin will return the following for each folder it finds.
{
"location" : "anothefolder",
"type" : "dir",
"depth" : 1
}grunt.initConfig({folder_list: {options: {// Default options, you dont need these they are just to highlight the options available.files: true,folders: true},files: {// Create a JSON file (.json)'tmp/fixtures.json': ['test/fixtures/**'],// Create a YML file (.yml)'tmp/fixtures.yml': ['test/fixtures/**'],// Create a YML file (.ymal)'tmp/fixtures.ymal': ['test/fixtures/**'],},},});Type: Boolean
Default value: true
A boolean value to turn off listing files within your output. Defaults to true.
Type: Boolean
Default value: true
A boolean value to turn off listing folders within your output. Defaults to true.
Useful when you want your file and folder locations to start from a set level.
grunt.initConfig({folder_list : {options : {files: true,folders: true},files : {src : ['**'],dest : 'tmp/fixtures.json',cwd : 'test/fixtures'}}});As with most things Grunt, you can do wildcard selections to ignore certain folders or files.
The below code will create 2 files (1 JSON and 1 YML). The JSON file will only log HTML files. The YML will only list files and folders within folders starting with 'asset'.
grunt.initConfig({default_options : {options : {files: true,folder: true},files : [{src : ['**/*.html'],dest : 'tmp/htmlfiles.json',cwd : 'test/fixtures'},{src : ['asset*/**'],dest : 'tmp/assets.yml',cwd : 'test/fixtures'}]},});In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
v1.1.0 - 17 Feb 2014 - Clean comments, formatting and package.json v1.0.0 - 15 Feb 2014 - Tweaks, Docs, Examples, Tests v0.1.0 - 14 Feb 2014 - Initial Base