使用 gulp-bower-normalize 将所有文件复制到一个目录



我可以使用gulp-bower-normalized将不同类型的文件从一个目录复制到另一个目录吗?

我以为我可以这样做,但它只是根据文件扩展名将所有字体复制到它们的目录中。

"overrides": {
    "font-awesome": {
        "main": [
            "css/font-awesome.min.css",
            "fonts/*"
        ],
        "normalize": {
            "fonts": "fonts/*.*"
        }
    }
}

main中删除"fonts/*"只会复制 css。

PS.:我知道我可以通过gulp.src()gulp.dest()做到这一点,但我想知道"规范化方式"。

//- gulpfile.js file
var bower = require('main-bower-files');
var bowerNorm = require('gulp-bower-normalize');
var DEST = './build/';
gulp.task('default', function () {
  return gulp.src(bower(), { base: './path/to/bower_components'})
    .pipe(bowerNorm({ flatten: true }))
    .pipe(gulp.dest(DEST));
});
//- bower.json file
"overrides": {
  "font-awesome": {
    "main": [
      "css/font-awesome.min.css",
      "fonts/*"
    ],
    "normalize": {
      "fonts": [ "*.eot", "*.svg", "*.ttf", "*.woff", "*.woff2" ]
    }
  }
}

以上应该可以解决您的问题。当您使用依赖项键下的normalize键(在本例中为 "font-awesome")时,子键 ( "fonts" ) 表示您尝试创建的文件夹名称。该键的值是要放入该目录中的文件类型。所以在上面的解决方案中,我们说,当我们规范化我们的依赖关系时,我们想把"*.eot""*.svg""*.ttf""*.woff""*.woff2"文件放在"fonts"目录中。

上述代码的结果将是这样的:

build/
├── css/
│   └── font-awesome.min.css
└── fonts/
    ├── some-font-file.eot
    ├── some-font-file.svg
    ├── some-font-file.ttf
    ├── some-font-file.woff
    └── some-font-file.woff2

如果我能进一步澄清,请告诉我。

最新更新