【问题标题】:gulp.dest to be same as the current file?gulp.dest 与当前文件相同?
【发布时间】:2016-04-16 23:11:06
【问题描述】:

我正在尝试将我编译的 .css 文件传送到与其原始 .scss 文件相同的目录

gulp.task('sass', function() {
  return gulp.src([
    appDir + '/*.scss',
    appDir + '/**/*.scss'
  ])
  .pipe(sass())
  .pipe(gulp.dest(..));
});

我不知道如何将 gulp.dest 设置为与原始 .scss 文件相同,因此我将这个文件和 .css 文件放在同一个文件夹中。

【问题讨论】:

  • 提示:只需在您的gulp.src 中包含appDir + '/**/*.scss'。这将获取appDir 目录中的任何scss 文件,因此appDir + '/*.scss' 是不必要的。

标签: css sass gulp gulp-sass


【解决方案1】:

您可以使用自定义函数并为每个文件设置自己的路径。

var path = require('path');

gulp
    .src('path/to/files')
    .pipe(YourOperation({...}))
    .pipe(gulp.dest(function(file) {
        return path.dirname(file.path); // <- is here
    }))
;

【讨论】:

    【解决方案2】:

    不,您可以将目的地设置为您想要的任何地方。

    例如,您可以为每个版本、Staging、UAT、Prod 设置不同的目标

    查看gulp-dest 文档以获取示例,如果您将任务与gulp-yargs 结合起来,您可以设置不同的属性来处理目标、版本...

    例子:

    gulp.task('scss', function () {
        var appDir = './public/css';
        return gulp.src([
            appDir + '/*.scss',
            appDir + '/**/*.scss'
        ])
        .pipe(sass())
        .pipe(gulp.dest('./build/css/'));
    });
    

    【讨论】:

      猜你喜欢
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多