Gulp 少吞咽+;自动刷新+;源地图挫折感

Gulp 少吞咽+;自动刷新+;源地图挫折感,gulp,less,source-maps,autoprefixer,Gulp,Less,Source Maps,Autoprefixer,我的任务如下: var gulp = require('gulp'), plugins = require('gulp-load-plugins')({ camelize: true }); gulp.task('styles-compile', function() { return gulp.src(['less/site.less', 'less/special-*.less', 'less/editor-s

我的任务如下:

var gulp = require('gulp'),
    plugins = require('gulp-load-plugins')({ camelize: true });

gulp.task('styles-compile', function() {
    return gulp.src(['less/site.less',
                'less/special-*.less',
                'less/editor-styles.less'])
        .pipe(plugins.sourcemaps.init())
        .pipe(plugins.less())
        .pipe(plugins.autoprefixer('last 15 versions', 'ie 8', 'ios 6', 'android 4'))
        .pipe(plugins.sourcemaps.write('.', {sourceRoot: '../less', includeContent: false}))
        .pipe(gulp.dest('css'))
});
我似乎无法配置它来让sourcemaps正常工作。 这是我得到的最接近工作版本的版本-唯一的问题是生成的sourcemap在其源列表中包含了它所用于的文件-例如site.css.map我得到:

{"version":3,"sources":["site.css","../font/icon/css/fontawesome.css","site.less"...,"names":[],"mappings":"...","file":"site.css","sourceRoot":"../less"}
首先,我相当确定目标文件本身(site.css)不需要出现在源代码列表中,但另一方面,它不出现在
less
目录中,而是出现在css目录中。因此,当我在dev工具中加载它时,找不到它

如果我删除autoprefixer,一切都正常,所以我想我在这里看到的是,autoprefixer对源文件和目标文件都使用
site.css
,因此它认为它们之间存在映射

根据其他地方的一些建议,我尝试在
less()
autoprefixer()
之间添加对
sourcemaps.write()
的调用,但这并不能解决问题,事实上,在生成的CSS中添加了额外的sourceMappingURL注释

有没有一种公认的/更好的方法可以做到这一点

根据@seven phases max的评论,我对任务做了轻微的修改:

var gulp = require('gulp'),
    plugins = require('gulp-load-plugins')({ camelize: true }),
    autoprefixer = require('autoprefixer');
gulp.task('styles-compile', function() {
    return gulp.src(['less/site.less',
                'less/special-*.less',
                'less/editor-styles.less'])
        .pipe(plugins.sourcemaps.init())
        .pipe(plugins.less())
        .pipe(plugins.postcss([autoprefixer]))
        .pipe(plugins.sourcemaps.write('.', {sourceRoot: '../less', includeContent: false}))
        .pipe(gulp.dest('css'))
});

不幸的是,输出似乎完全相同,我仍然将site.css作为第一个源代码。

在autoprefixer问题跟踪器上,他们建议您使用
gulp autoprefixer
再好不过了。相反,他们建议使用
gulp postsss
,尽管我不知道它能为您的问题提供多大的改进。@最多七个阶段哦,好的,谢谢-您从哪里看到的?根据
npm列表
,看起来autoprefixer已经在使用PostCs了,但我可以用其他方式直接使用它吗?
gulp PostCs
gulp autoprefixer
的替代品(例如,它不是关于
autoprefixer
引擎本身,而是关于它的
gulp
包装器)。除非我误解了如何设置它,否则这似乎没有帮助,不幸的是