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-dev
Once 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