Grunt task for MooTools Packager projects.
This plugin requires Grunt ~0.4.2
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-mootools-packager --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-mootools-packager');
In your project's Gruntfile, add a section named packager
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
packager: {
options: {
name: 'Core' // Package name. (todo: use package.json)
},
your_target: {
// Target-specific file lists and/or options go here.
'mootools-all.js': 'Source/**.js'
},
},
});
Type: String
or Array<String|RegExp>
Default value: false
A single, or multiple, strings or regexp to remove from the combined code.
Type: String
Default value: grunt.util.linefeed
The delimeter to join all the source files together.
Type: Function
The function to be called when compilation is finished. The compiled content will passed as the first argument in the callback function.
Type: Boolean
If true
no files will be written. Defaults to false.
Type: String
or Object
The package name. TODO: Use package.json.
The name of the package, or, if there are multiple packages being built, an object with the names and paths to their source files.
grunt.initConfig({
packager: {
options: {
name: {
Core: 'js/mootools-core',
More: 'js/mootools-more'
}
},
all: {
'dest/mootools.js': 'Source/**.js',
},
},
});
Type: Booelan
Default value: false
Ignores the YAML headers for dependency loading.
Type: String
or Array
The specific components or packages to compile (with their dependencies).
NOTE: You can specify the .only
value in the .options
and it will apply to all
configurations globally, but you can also specify an .only
value for each configuration.
This allows you to build numerous libraries with specific requirements.
grunt.initConfig({
packager: {
options: {
name: {
Core: 'js/mootools-core',
More: 'js/mootools-more'
}
},
// all of both libraries
all: {
src: [
'js/mootools-core/Source/**/*.js',
'js/mootools-more/Source/**/*.js'
],
dest: 'mootools.js'
},
// the Form.Validator component and its requirements
formValidator: {
src: [
'js/mootools-core/Source/**/*.js',
'js/mootools-more/Source/**/*.js'
],
only: [
'More/Form.Validator'
]
dest: 'form.validator.js'
},
// all of the More package and its requirements
allOfMore: {
src: [
'js/mootools-core/Source/**/*.js',
'js/mootools-more/Source/**/*.js'
],
only: [
'More/*'
]
dest: 'more.js'
}
},
});
grunt.initConfig({
packager: {
options: {
name: 'Core'
},
all: {
'dest/mootools.js': 'Source/**.js',
},
},
});
grunt.initConfig({
packager: {
options: {
name: 'Core',
strip: '.*compat'
},
all: {
'dest/mootools.js': 'Source/**.js',
},
},
});