Grunt task for compiling macros for CoffeeScript.
This plugin requires Grunt >=0.4.0
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-macaron --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-macaron');
In your project's Gruntfile, add a section named macaron
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
macaron: {
default: {
files: {
'macros_file.coffee': ['source.coffee', 'files.coffee']
}
},
your_target: {
options: {
bare: false,
outputFile: 'dist/output.js'
},
files: {
'source/my_macros.coffee': ['source/some_dir/my_file.coffee']
}
}
}
});
Type: Boolean
Default value: false
This option passed to Macaron as it is.
Type: String
Default value: dist/macaron_compiled.js
Path of output file for target.
In this example, macaron will compile main.coffee and side.coffee files with macros defined in macros.coffee and write to default output file dist/macaron_compiled.js
.
grunt.initConfig({
macaron: {
default: {
files: {
'macros.coffee': ['main.coffee', 'side.coffee']
}
}
}
});
In this example, macaron will compile hello.coffee file with macros defined in macros.coffee and write to output file with path given dist/out.js
.
grunt.initConfig({
macaron: {
custom: {
options: {
bare: false,
outputFile: 'dist/out.js'
},
files: {
'macros.coffee': ['hello.coffee']
}
}
}
});
In this example, macaron finds and concats the files using glob pattern. And it excludes macros file using !
prefix since glob pattern includes the macros file.
grunt.initConfig({
macaron: {
default: {
options: {
outputFile: 'dist/output.js'
},
files: {
'src/macros.coffee': ['src/**/*.coffee', '!src/macros.coffee']
}
}
}
});
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.