我使用包gulp-less
和gulp-sourcemaps
。我的 less 文件位于 Styles/main.less
下,但生成的源映射指向source/main.less
(其中source/
似乎是前缀)。如何解决此问题,以便源映射正确指向source/Styles/main.less
?
我的吞咽任务相当简单:
var gulp = require('gulp'),
less = require('gulp-less'),
gulpif = require('gulp-if'),
sourcemaps = require('gulp-sourcemaps');
var paths = {
styles: [
'Styles/**/*.less',
'!**/*.min.css'
],
wwwRoot: 'wwwroot/'
}
var isLessFile = function(file) { return /.less$/.test(file.path); }
gulp.task('styles', function() {
return gulp
.src(paths.styles)
.pipe(sourcemaps.init())
.pipe(gulpif(isLessFile, less()))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.wwwRoot + 'styles'));
});
sourcemaps.write('.',{includeContent:false, sourceRoot:'../Styles'})
应该为你工作。默认情况下,您将源内容包含在源映射文件中,sourceRoot
可能是"/source/",这意味着使用嵌入的源文件。 includeContent:false
阻止将源嵌入到源映射文件中,还必须将sourceRoot
属性设置为从保存源映射到源文件所在位置的相对路径。在我的示例中,它将查找一个文件夹的样式文件夹,这将以源映射sources
数组中的所有路径为前缀。