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 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;
}
Type: Function
Callback called before templates are processed task.
Type: Function
Callback called after templates are processed task.
Type: Function
Callback called after questions are asked and before templates are processed task.
This plugin is inspired by grunt-prompt and scaffolding.
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.