css - cssmin grunt plugin generates incorrect source urls in sourcemap -
cssmin grunt plugin grunt-contrib-cssmin
trims leading slash in css sourcemap sources url, making css mapping incorrect. meanwhile after editing sourcemap file hand (adding leading slash each source url) seems mapped correctly. original sourcemap file taken annotation in original css (unminified), generated correctly other grunt plugins.
my file structure:
web (resource root) ├─css │ └─..(css files) └─less └─..(less files)
sourcemap of original (unminified) css – sources urls correct. generated grunt-contrib-less , grunt-autoprefixer respectively:
{"version":3,"sources":["/less/base/normalize.less","/less/base/boilerplate.less"...
sourcemap of minified css – leading slashes source files disappeared. generated grunt-contrib-cssmin:
{"version":3,"sources":["less/base/normalize.less","less/base/boilerplate.less"...
part of gruntfile.js:
module.exports = function(grunt) { grunt.initconfig({ cssmin: { options: { shorthandcompacting: false, sourcemap: true, roundingprecision: -1 }, target: { files: { 'web/css/style.min.css': 'web/css/style.css' } } } }); };
by solved problem grunt-string-replace
plugin. configured gruntfile.js
adds leading slashes source files in sourcemap:
module.exports = function(grunt) { grunt.initconfig({ 'string-replace': { dist: { files: { 'web/css/style.min.css.map': 'web/css/style.min.css.map' }, options: { replacements: [{ pattern: /"([^"])*(less\/)/g, replacement: '"/less/' }] } } } // other code }); };
well, it's hack, because requires additional grunt plugin. solved problem.
Comments
Post a Comment