grunt-preprocess
Version:
Preprocess HTML and JavaScript directives based off environment configuration
133 lines (124 loc) • 3.42 kB
JavaScript
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
preprocess : {
options : {
context : {
globalOption : "bar"
}
},
html : {
src : 'test/fixtures/test.html',
dest : 'tmp/test.processed.html',
options : {
context : {
customOption : 'foo',
foo: function (param) {
return param + '-baz';
}
}
}
},
js : {
src : 'test/fixtures/test.js',
dest : 'tmp/test.processed.js'
},
coffee : {
src : 'test/fixtures/test.coffee',
dest : 'tmp/test.processed.coffee'
},
'customext with srcDir': {
options: {
type: 'coffee',
srcDir: 'test/fixtures'
},
src : 'tmp/test.coffee.customext',
dest : 'tmp/test.processed.coffee.customext'
},
fileNotFoundSilentFail: {
options: {
type: 'coffee',
fileNotFoundSilentFail: true
},
src : 'tmp/test.coffee.customext',
dest : 'tmp/test.processed.legacy.notfound.coffee'
},
customEol: {
options: {
srcEol: '\r\n'
},
src : 'test/fixtures/test.coffee',
dest : 'tmp/test.processed.custom.eol.coffee'
},
deep : {
src : 'test/fixtures/test.js',
dest : 'tmp/deep/directory/structure/test.processed.js'
},
multifile : {
files : {
'tmp/multifile.test.processed.js': 'test/fixtures/test.js',
'tmp/multifile.test.processed.coffee': 'test/fixtures/test.coffee'
}
},
expanded : {
files : {
'tmp/test-inline-expected.js' : 'test/fixtures/inline/test.js',
'tmp/test2-inline-expected.js' : 'test/fixtures/inline/test2.js'
}
},
inline : {
src : 'tmp/inline-temp/*.js',
options : {
inline : true
}
},
'context-precedence-1' : {
src : 'test/fixtures/context-precedence.js',
dest : 'tmp/context-precedence-result-1.js'
},
'context-precedence-2' : {
options : {
context : {
globalOption : "foo"
}
},
src : 'test/fixtures/context-precedence.js',
dest : 'tmp/context-precedence-result-2.js'
}
},
jshint: {
options: {
jshintrc : '.jshintrc'
},
all : ['Gruntfile.js', 'tasks/**/*.js']
},
copy : {
test : {
files : [
{src : '*', dest : 'tmp/inline-temp', expand : true, cwd : 'test/fixtures/inline/'},
{src : "test/fixtures/test.coffee", dest: "tmp/test.coffee.customext"}
]
}
},
clean : {
test : ['tmp']
},
nodeunit: {
tests: ['test/*_test.js']
}
});
grunt.loadNpmTasks('grunt-contrib-nodeunit');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-jshint');
// Load local tasks.
grunt.loadTasks('tasks');
// Default task.
grunt.registerTask('test', ['jshint','clean', 'fake-env', 'copy', 'preprocess', 'nodeunit']);
grunt.registerTask('default', ['test']);
grunt.registerTask('fake-env', function() {
// create a fake env var for tests
process.env['FAKEHOME'] = '/Users/joverson';
});
};
;