module.exports = function(grunt) { grunt.registerMultiTask('build', 'Building Source', function(){ var vtt, novtt; // Fix windows file path delimiter issue var i = grunt.sourceFiles.length; while (i--) { grunt.sourceFiles[i] = grunt.sourceFiles[i].replace(/\\/g, '/'); } // Create a combined sources file. https://github.com/zencoder/video-js/issues/287 var combined = ''; grunt.sourceFiles.forEach(function(result){ combined += grunt.file.read(result); }); // Replace CDN version ref in js. Use major/minor version. combined = combined.replace(/GENERATED_CDN_VSN/g, grunt.vjsVersion.majorMinor); combined = combined.replace(/GENERATED_FULL_VSN/g, grunt.vjsVersion.full); vtt = grunt.file.read('node_modules/vtt.js/dist/vtt.js'); novtt = combined; combined += '\n'+vtt; grunt.file.write('build/files/combined.video.js', combined); grunt.file.write('build/files/combined.video.novtt.js', novtt); // Copy over other files // grunt.file.copy('src/css/video-js.png', 'build/files/video-js.png'); grunt.file.copy('node_modules/videojs-swf/dist/video-js.swf', 'build/files/video-js.swf'); // Inject version number into css file var css = grunt.file.read('build/files/video-js.css'); css = css.replace(/GENERATED_AT_BUILD/g, grunt.vjsVersion.full); grunt.file.write('build/files/video-js.css', css); // Copy over font files grunt.file.recurse('src/css/font', function(absdir, rootdir, subdir, filename) { // Block .DS_Store files if ('filename'.substring(0,1) !== '.') { grunt.file.copy(absdir, 'build/files/font/' + filename); } }); // Minify CSS grunt.task.run(['cssmin']); }); }