Prevents overriding releases, but makes exceptions for custom patterns.
npm install 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 in package.json. If you wish to use something other than rc you can add set a custom pattern in options.
~0.4.5If 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:
``shell`
npm install grunt-referee --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
`js`
grunt.loadNpmTasks('grunt-referee');
to the data object passed into grunt.initConfig().`js
grunt.initConfig({
referee: {
build: {
options: {
pattern: /([rc])+/g,
tasks: [
'clean:dist',
'wiredep',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'ngmin',
'cdnify',
'cssmin',
'uglify',
'usemin',
'htmlmin'
]
}
}
},
});
`$3
#### options.patterns
Type:
Regex
Default value: /([rc])+/gA 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.
$3
#### 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.`js
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.`js
grunt.initConfig({
referee: {
options: {
pattern: /([rc])+/g,
warning: 'Yo fool, you already released that.'
tasks: [
'clean',
'lesslint',
'jshint',
'cssmin',
'concat'
]
}
},
});
``