【问题标题】:Gulp compile less files and minify themGulp 编译更少的文件并缩小它们
【发布时间】:2017-07-19 19:54:53
【问题描述】:

我是使用 Gulp 或 Grunt 等任务运行器的新手,我选择使用 Gulp 来自动化我的任务,因为我熟悉 Javascript 语言。

我成功地将我的 .less 文件编译为 .css,我什至写了一个任务来缩小我的 .css 文件。

我想使用 BrowSync 运行 watch 任务,它会自动将 .less 文件编译为 .css,将 .css 编译为 .min.css。

这是我的代码:

gulp.task('minifyCSS', () => {
return gulp.src([
    'web/assets/css/*.css',
    '!web/assets/css/*.min.css'
])
    .pipe(sourcemaps.init())
    .pipe(cleanCSS())
    .pipe(sourcemaps.write())
    .pipe(rename({ suffix: '.min'}))
    .pipe(gulp.dest('web/assets/css'));});

gulp.task('less', () => {
return gulp.src('web/assets/less/*.less')
    .pipe(less())
    .pipe(gulp.dest('web/assets/css'))
    .pipe(browserSync.reload({
        stream: true
    }));});

gulp.task('watchSync', ['less', 'minifyCSS', 'browserSync'] , () => { gulp.watch('web/assets/less/*.less', ['less']); });

gulp.task('browserSync', () => {
browserSync.init({
    notify: false,
    browser: "chrome",
    proxy: "localhost/web/app_dev.php",
    open: false
});});

browserSync 任务运行良好,但它从未将 .css 编译为 .min.css。但是当我运行“gulp minifyCSS”时,它就完成了这项工作......

我错过了一步吗?谁能帮我解决这个问题? :)

【问题讨论】:

  • 你确定 gulp.watch 不需要return 吗?
  • 我不确定......我知道 gulp.watch 完成这项工作没有回报,但它没有通过 minifyCSS 任务:/
  • 你的 gulp.watch 应该调用 minifyCss 而不是 'less' 规则,并且 minifyCss 规则应该要求 'less'。
  • 我明白你的意思了!我要试试;)
  • 它不起作用我的 .css 已修改但 .min.css 没有改变...我调用 watchSync 这个任务需要 'minifyCss' 并且 minifyCss 规则需要 'less' 我会尝试找到执行任务的正确方法

标签: gulp


【解决方案1】:

我几乎可以肯定这会奏效:

gulp.task('minifyCSS', ['less'], () => {
  return gulp.src([
        'web/assets/css/*.css',
        '!web/assets/css/*.min.css'
    ])
    .pipe(sourcemaps.init())
    .pipe(cleanCSS())
    .pipe(sourcemaps.write())
    .pipe(rename({ suffix: '.min'}))
    .pipe(gulp.dest('web/assets/css'))
    .pipe(browserSync.reload({
        stream: true
    }))
   ;
});

gulp.task('less', () => {
  return gulp.src('web/assets/less/*.less')
    .pipe(less())
    .pipe(gulp.dest('web/assets/css'))
  ;
});

gulp.task('watchSync', ['minifyCSS', 'browserSync'] , () => {
  gulp.watch('web/assets/less/*.less', ['minifyCSS']);
});

gulp.task('browserSync', () => {
  browserSync.init({
      notify: false,
      browser: "chrome",
      proxy: "localhost/web/app_dev.php",
      open: false
  });
});

【讨论】:

  • 有效!我的问题是需要什么任务......正如你所说! :) 感谢您的宝贵时间!
猜你喜欢
  • 1970-01-01
  • 2014-02-10
  • 2014-07-20
  • 2014-03-30
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
  • 1970-01-01
相关资源
最近更新 更多