在一组特定条件下,使用&
复合选择器(例如&.mod-enabled
或&:after
)使sourcemap生成器生成带有负列索引的sourcemap。
条件是:
当gulp-sass
切换到node-sass
版本4.0时,这为我弹出了,这将LibSass推到了3.4。 我可以制作的最小的可复制测试用例在这里可用。
样本错误:
Error: Invalid mapping: {"generated":{"line":1,"column":6},"source":"mixins.scss","original":{"line":3,"column":-4},"name":null}
at SourceMapGenerator_validateMapping [as _validateMapping] (/Users/cepheus/break-gulp-sass/node_modules/source-map/lib/source-map-generator.js:277:13)
at SourceMapGenerator_addMapping [as addMapping] (/Users/cepheus/break-gulp-sass/node_modules/source-map/lib/source-map-generator.js:101:12)
at /Users/cepheus/break-gulp-sass/node_modules/concat-with-sourcemaps/index.js:60:28
at Array.forEach (native)
at SourceMapConsumer_eachMapping [as eachMapping] (/Users/cepheus/break-gulp-sass/node_modules/source-map/lib/source-map-consumer.js:155:14)
at Concat.add (/Users/cepheus/break-gulp-sass/node_modules/concat-with-sourcemaps/index.js:58:18)
at DestroyableTransform.bufferContents [as _transform] (/Users/cepheus/break-gulp-sass/node_modules/gulp-concat/index.js:68:12)
at DestroyableTransform.Transform._read (/Users/cepheus/break-gulp-sass/node_modules/readable-stream/lib/_stream_transform.js:159:10)
at DestroyableTransform.Transform._write (/Users/cepheus/break-gulp-sass/node_modules/readable-stream/lib/_stream_transform.js:147:83)
at doWrite (/Users/cepheus/break-gulp-sass/node_modules/readable-stream/lib/_stream_writable.js:347:64)
测试用例的两部分显示,此问题已在commit de83d30中引入。
在dlmanning / gulp-sass#577中CCing,因此此问题与该问题有关。
感谢您的测试用例,我可以使用Sourcemap Inspector从您的回购中实时确认问题。
与此相关的问题与angular / material2的样式结合在一起。 在这里发表评论以提高对此问题的认识。
最有用的评论
在dlmanning / gulp-sass#577中CCing,因此此问题与该问题有关。