gpt4 book ai didi

javascript - 如何在 gulp.src.options.base 中动态解析路径

转载 作者:行者123 更新时间:2023-12-03 06:24:49 24 4
gpt4 key购买 nike

我正在尝试使用 main-bower-files 编写基于 gulp 的应用程序。我想将我和 vendor 的所有 Assets 文件复制到 %build_dir%/assets 文件夹,但字体文件应复制到 %build_dir%/assets/fonts 中。如果没有 vendor 文件,可以通过 gulp.src.options.base 选项轻松完成。但我不明白如何使用 vendor 文件来做到这一点。现在我有了

gulp.task('assets', ['less'], function() {
return gulp.src('src/less/fonts/*', {base: 'src/less'})
.pipe(addSrc('src/assets/**.*'))
.pipe(addSrc(mainBowerFiles(/.*woff|woff2|otf|ttf/, {includeDev: true})))
.pipe(gulp.dest(buildDir + '/assets'));
});

但它将 vendor 字体复制到%build_dir%/assets。因此,理想的情况是将 base 编写为正则表达式,解析 vendor 字体的路径并获取 /fonts 之前的所有路径。怎么做?

vendor 文件夹具有以下结构:

/bower_components
/lib1
/fonts
font1.woff
/lib2
/fonts
font2.otf
/lib3
/fonts
font3.ttf

最佳答案

So, ideal case is to write base as regexp that parses path to vendor fonts and take all path before /fonts. How to do it?

不可能。 base 选项不支持正则表达式。仅字符串。

无论如何,您都不需要 base 选项。只需创建两个流,每个流都有自己的gulp.dest()。然后使用 merge-stream 合并这些流:

var merge = require('merge-stream');

gulp.task('assets', ['less'], function() {
return merge(
gulp.src(['src/less/fonts/*'].concat(mainBowerFiles(/.*woff|woff2|otf|ttf/, {includeDev: true})))
.pipe(gulp.dest(buildDir + '/assets/fonts')),
gulp.src('src/assets/**.*')
.pipe(gulp.dest(buildDir + '/assets')));
});

这也意味着您不再需要gulp-add-src

关于javascript - 如何在 gulp.src.options.base 中动态解析路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38702336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com