grunt-referee v0.0.2
grunt-referee
Prevents overwriting a previous built project (typically referred to as a release), but makes exceptions for custom patterns. This plugin reads from the version in
package.json
and won't run a task if that version already exists. If you wish to overwite a version for development you can add "rc" to the end of your version inpackage.json
. If you wish to use something other than rc you can add set a custom pattern in options.
Getting Started
This plugin requires Grunt ~0.4.5
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-referee --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-referee');
The "referee" task
Overview
In your project's Gruntfile, add a section named referee
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
referee: {
build: {
options: {
pattern: /([rc])+/g,
tasks: [
'clean:dist',
'wiredep',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'ngmin',
'cdnify',
'cssmin',
'uglify',
'usemin',
'htmlmin'
]
}
}
},
});
Options
options.patterns
Type: Regex
Default value: /([rc])+/g
A pattern that determines your version is safe to overwrite. *Typically used for development.
options.tasks
Type: Array
Default value: ['build']
The tasks that you want to run when you "build" you're project.
options.warning
Type: String
Default value: WARNING!!! - Version {{version}} has already been released and cannot be overwritten.
A warning message to display when someone tries to build the a project that has already been built.
Usage Examples
Default Options
As stated before, the default task the plugin runs if no tasks are it build
. The main purpose of
this plugin is to provide a layer of protection of the version you want to release and the build standard
build task you use which can sometimes be distructive.
grunt.initConfig({
referee: {
options: {}
},
});
// Your projects build tasks
grunt.registerTask('build', ['clean', 'lesslint', 'jshint', 'cssmin', 'concat']);
// Alias for referee
grunt.registerTask('release', ['referee']);
Custom Options
If you wish, you can overwrite the default referee settings. The example below completely removes
the afformentioned build
task and funnels everything through referee.
grunt.initConfig({
referee: {
options: {
pattern: /([rc])+/g,
warning: 'Yo fool, you already released that.'
tasks: [
'clean',
'lesslint',
'jshint',
'cssmin',
'concat'
]
}
},
});
Contributing
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.
Release History
(Nothing yet)
10 years ago