"use strict"; var fs = require( "fs" ); module.exports = function( grunt ) { grunt.registerTask( "dist", "Process files for distribution", function() { var files = grunt.file.expand( { filter: "isFile" }, "dist/*" ); files.forEach(function( filename ) { var map, text = fs.readFileSync( filename, "utf8" ); // Modify map/min so that it points to files in the same folder; // see https://github.com/mishoo/UglifyJS2/issues/47 if ( /\.map$/.test( filename ) ) { text = text.replace( /"dist\//g, "\"" ); fs.writeFileSync( filename, text, "utf-8" ); } else if ( /\.min\.js$/.test( filename ) ) { // Wrap sourceMap directive in multiline comments (#13274) text = text.replace( /\n?(\/\/@\s*sourceMappingURL=)(.*)/, function( _, directive, path ) { map = "\n" + directive + path.replace( /^dist\//, "" ); return ""; }); if ( map ) { text = text.replace( /(^\/\*[\w\W]*?)\s*\*\/|$/, function( _, comment ) { return ( comment || "\n/*" ) + map + "\n*/"; }); } fs.writeFileSync( filename, text, "utf-8" ); } }); }); };