Less 用更少的/concat/autoprefixer/minifycss吞下sourcemap?

Less 用更少的/concat/autoprefixer/minifycss吞下sourcemap?,less,concat,gulp,source-maps,autoprefixer,Less,Concat,Gulp,Source Maps,Autoprefixer,是否可以使用所有这些转换生成sourcemap gulp.task('styles', function() { return gulp.src(source.styles) .pipe(plumber()) .pipe(gulpif(/\.less$/, plumber().pipe(less({ strictMath: true, strictUnits: true, }))))

是否可以使用所有这些转换生成sourcemap

gulp.task('styles', function() {
    return gulp.src(source.styles)
        .pipe(plumber())
        .pipe(gulpif(/\.less$/, plumber().pipe(less({
            strictMath: true,
            strictUnits: true,
        }))))
        .pipe(concat('bundle.css'))
        .pipe(prefixer(['last 2 versions', '> 1%', 'ie 9'], {cascade: false}))
        .pipe(minifyCss())
        .pipe(gulp.dest('public/css'));
});
使用的图书馆:


我知道可以生成源地图,我认为gulp concat不支持它们,应该保留它们,并且缩小css/似乎没有提到源地图。我运气不好吗?

今晚我遇到了同样的问题,我仍在努力寻找一个干净的解决方案。然而,我只是设法让一些东西起作用,所以我想我会分享:

注意:我既没有使用
gulpif
也没有使用
minify

使用
gulpsourcemaps
,因为
gulpless
似乎没有源地图选项(至少目前是这样)

gulp concat
替换为
gulp concat sourcemap
,以保留sourcemap

Gulp sourcemaps(参见)目前不支持Gulp concat。 在修复之前,这里有一个修补版本:


由于Less的版本2,您可以为Less编译器使用插件。此外,gulp less允许您使用这些插件(编程),请参见

gulp less的文档描述了如何使用clean css和autoprefix插件。请注意,gulp minify css也在利用干净css的代码

另外,有关使用gulp-less和gulp sourcemaps创建sourcemaps的说明,请参见

因此,您应该能够使用:

var LessPluginCleanCSS = require("less-plugin-clean-css"),
    cleancss = new LessPluginCleanCSS({advanced: true});

var LessPluginAutoPrefix = require('less-plugin-autoprefix'),
    autoprefix= new LessPluginAutoPrefix({browsers: ["last 2 versions"]});


gulp.src('./less/**/*.less')
  .pipe(sourcemaps.init())
  .pipe(less({
    plugins: [autoprefix, cleancss]
   }))
  .pipe(sourcemaps.write('./maps'))
  .pipe(gulp.dest('./public/css'));
上面的内容应该生成Less源的自动重新定义和缩小的CSS,并将CSS sourcemaps写入到./public/CSS/maps中


另一方面,你可以考虑使用该软件可以运行许多后置处理器一次,见

几乎有;你在做任何类型的缩小吗?还没有,只为开发环境ftm做这个。任何提示请让我/我们知道!说得好,也许我也应该放弃dev的缩小步骤。我不确定我在生产中是否需要sourcemaps.tx,看起来现在支持gulp concat…感谢@memeLab让我们知道,我已经更新了答案。我发现在将CSS加载到chrome中时,maps文件没有指向正确的代码行?默认情况下,sourcemap中包含了较少的代码,另请参见
includeContent
sourceRoot
选项
var LessPluginCleanCSS = require("less-plugin-clean-css"),
    cleancss = new LessPluginCleanCSS({advanced: true});

var LessPluginAutoPrefix = require('less-plugin-autoprefix'),
    autoprefix= new LessPluginAutoPrefix({browsers: ["last 2 versions"]});


gulp.src('./less/**/*.less')
  .pipe(sourcemaps.init())
  .pipe(less({
    plugins: [autoprefix, cleancss]
   }))
  .pipe(sourcemaps.write('./maps'))
  .pipe(gulp.dest('./public/css'));