"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" );
|
}
|
});
|
});
|
};
|