gulp : 如何缩短未知来源的目标文件夹?

gulp : how to shorten destination folder of an unknow source?

我最近试着玩了一下 gulp,我想用它来将多个 sass 文件编译成一个。所以这是我的任务:

gulp.task('dev', function () { 
   return gulp
   .src('vendor/proj/**/**/src/assets/scss/dev.scss')
   .pipe(sass())
   .pipe( rename (function (path) {
       path.basename = 'dev';
   }))
   .pipe(gulp.dest('public/css'));
});

它工作正常,除了我想修改目的地。我不确定这是否可行,但是编译后的 css 最终出现在: public/css/folder1/subfolder1/src/assets/scss/dev.css
无论如何 gulp 都可以放置 css进入 : public/css/folder1/subfolder1/dev.css

非常感谢!

您可以为此使用 gulp-flatten。您的 gulp 任务应该类似于:

gulp.task('dev', function () { 
   return gulp
   .src('vendor/proj/**/**/src/assets/scss/dev.scss')
   .pipe(sass())
   .pipe( rename (function (path) {
       path.basename = 'dev';
   }))
   .pipe(flatten({ includeParents: 4} )) // number of parent folders to include
   .pipe(gulp.dest('public/css'));
});

这应该放在文件夹中:public/css/folder1/subfolder1。您可以使用 includeParents 选项。