diff --git a/index.js b/index.js index f913a8c..a509728 100644 --- a/index.js +++ b/index.js @@ -55,7 +55,7 @@ module.exports = (options, callback) => { const iMap = JSON.parse(css.sourceMap); const oMap = Object.assign({}, iMap, { file: path.relative(file.base, file.path), - sources: iMap.sources.map(() => path.relative(file.base, file.path)) + sources: iMap.sources.map(mapSrc => path.relative(file.base, mapSrc)) }); applySourceMap(file, oMap); } diff --git a/index.spec.js b/index.spec.js index 4dd0e68..9587a70 100644 --- a/index.spec.js +++ b/index.spec.js @@ -262,6 +262,24 @@ describe('gulp-clean-css: base functionality', () => { done(); }); }) + + it('should write sourcemaps, correct source path', done => { + let maps = {}; + gulp.src(['test/fixtures/sourcemaps-import/styles/main.css'], {base: 'test/fixtures/sourcemaps-import/styles'}) + .pipe(sourcemaps.init()) + .pipe(cleanCSS()) + .pipe(sourcemaps.mapSources(function (sourcePath, file) { + maps[sourcePath] = true; + return sourcePath; + })) + .pipe(sourcemaps.write('./', {sourceRoot: '/'})) + .pipe(gulp.dest('test/fixtures/sourcemaps-import')) + .once('end', () => { + maps['main.css'].should.be.true; + maps['partial.css'].should.be.true; + done(); + }); + }); }); describe('gulp-clean-css: rebase', () => { diff --git a/package.json b/package.json index 25ba355..f8cefc6 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "gulp-clean-css", "description": "Minify css with clean-css.", "homepage": "https://github.com/scniro/gulp-clean-css#readme", - "version": "4.1.0", + "version": "4.1.1", "author": "scniro", "license": "MIT", "bugs": { diff --git a/test/fixtures/sourcemaps-import/main.css b/test/fixtures/sourcemaps-import/main.css new file mode 100644 index 0000000..01aee01 --- /dev/null +++ b/test/fixtures/sourcemaps-import/main.css @@ -0,0 +1,2 @@ +div{color:red}div{margin:10} +/*# sourceMappingURL=main.css.map */ diff --git a/test/fixtures/sourcemaps-import/main.css.map b/test/fixtures/sourcemaps-import/main.css.map new file mode 100644 index 0000000..6687fa7 --- /dev/null +++ b/test/fixtures/sourcemaps-import/main.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["partial.css","main.css"],"names":[],"mappings":"AAAA,IACE,MAAM,ICCR,IACE,OAAO","file":"main.css","sourceRoot":"/","sourcesContent":["div {\n color:red;\n}\n","@import(partial.css);\n\ndiv {\n margin:10;\n}\n"]} \ No newline at end of file diff --git a/test/fixtures/sourcemaps-import/styles/main.css b/test/fixtures/sourcemaps-import/styles/main.css new file mode 100644 index 0000000..bd55143 --- /dev/null +++ b/test/fixtures/sourcemaps-import/styles/main.css @@ -0,0 +1,5 @@ +@import(partial.css); + +div { + margin:10; +} diff --git a/test/fixtures/sourcemaps-import/styles/partial.css b/test/fixtures/sourcemaps-import/styles/partial.css new file mode 100644 index 0000000..c475eb3 --- /dev/null +++ b/test/fixtures/sourcemaps-import/styles/partial.css @@ -0,0 +1,3 @@ +div { + color:red; +}