如何动态指定目标文件夹以吞咽

时间:2016-04-04 15:56:30

标签: gulp

我有一个文件夹结构,我将所有资产都与此类似。

-page1
 -page1.html
 -stylesheets
  -page1
   -page1style.css

-page2
 page2.html
 stylesheets
  page2
   page1style.css

我意识到这不是最好的文件夹结构,但是在我预测到问题之前我会选择这种方式。在我的.html文件中,我引用了类似/stylesheets/name-of-page/foo.css的样式表。现在我在编写gulp脚本时遇到问题,因为所有缩小的文件都放在指定的目标文件夹中,但具有以下结构。

-build
 -page1
  -stylesheets
   -page1.css

当我想要这样的东西时

-build
 -page1
  -page.css

TL; DR或者如果我的问题是逻辑被扰乱:我希望在运行时看到文件的src路径,然后执行一些字符串操作来计算其目的地。

1 个答案:

答案 0 :(得分:1)

What you're looking for is gulp-rename:

var gulp = require('gulp');
var rename = require('gulp-rename');

gulp.task('default', function() {
  gulp.src('src/**/*')
    .pipe(rename(function(file) {
      if (file.extname === '.css') {
         file.dirname = //change directory to something else
         file.basename = //change file name (without extension) to something else
      }
    }));
});

I also suggest you look into the path module instead of direct string manipulation to adjust the paths of your files.