grunt-scaffold

Scaffold what you want.

grunt-scaffold

Scaffold what you want.

This plugin requires Grunt ~0.4.1.

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-scaffold --save-dev

One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-scaffold');

In your project's Gruntfile, add a section named scaffold to the data object passed into grunt.initConfig().

grunt.initConfig({
    scaffold: {
        test: {
            options: {
                questions: [{
                    name: 'name',
                    type: 'input',
                    message: 'Test name:'
                }],
                template: {
                    "skeletons/test.js": "test/{{name}}.js"
                }
            }
        }
    }
})
 

Type: Array

See Inquirer.js questions for more info.

Type: Object

Map of files to be copied from source to dest.

eg.

template: {"skeletons/test.js": "test/{{name}}.js"}

When the prompt for name is answered 'Button', then program processes content of the file skeletons/test.js and copy it to test/Button.js.

Type: Function

Function where user ansers can be modified/adjusted. This function receives the hash of all user answers.

eg.

filter: function (result) {
    result['capital-name'] = grunt.util._(result.name).capitalize();
    return result;
}

Type: Function

Callback called before templates are processed task.

Type: Function

Callback called after templates are processed task.

This plugin is inspired by grunt-prompt and scaffolding.

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.

The MIT License