grunt-scaffold
v0.7.0
Published
Scaffold what you want.
Downloads
68
Maintainers
Readme
grunt-scaffold
Scaffold what you want.
Getting Started
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');
The "scaffold" task
Overview
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"
}
}
}
}
})
Options
options.questions
Type: Array
See Inquirer.js questions for more info.
options.template
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.
options.filter
Type: Function
Function where user answers 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;
}
options.before
Type: Function
Callback called before templates are processed task.
options.after
Type: Function
Callback called after templates are processed task.
options.postQuestions
Type: Function
Callback called after questions are asked and before templates are processed task.
Thx
This plugin is inspired by grunt-prompt and scaffolding.
Contributing
In lieu of a formal style-guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.