Gulp 不创建文件夹?

2022-01-12 00:00:00 node.js javascript gulp

当我缩小我的 css 时,我得到了一个不正确的路径,可以从各种库中获取字体.所以,我创建了一个任务,将字体从我的 bower_components/ 文件夹移动到 dist/public/fonts:

When I minified my css, I was left with an incorrect path to the fonts from various libraries. So, I created a task to move the fonts from my bower_components/ folder to dist/public/fonts:

gulp.task('doit', function() {
    gulp.src(["public/bower_components/bootstrap/dist/fonts/*", "public/bower_components/font-awesome/fonts/*"])
        .pipe(gulp.dest("dist/public/fonts"));
});

基本上,这应该将我需要的任何字体放入通用字体文件夹中,我的缩小 css 现在应该能够访问该文件夹.

Basically that should throw any fonts I need into a generic fonts folder, which my minified css should now be able to access.

但是在我运行它之后,dist/public/fonts 不存在.为什么不呢?

But after I run it, dist/public/fonts doesn't exist. Why not?

推荐答案

我不完全理解你在 src-ing (public/bower_components?),但我相信你会想要使用 gulp.src 的 base 选项.

I don't fully understand the paths you're src-ing (public/bower_components?), but I believe you'll want to use the base option for gulp.src.

因为这两个 glob 将具有不同的基础,我建议将其分成两个单独的任务,并构建第三个以将它们聚合成一个.否则你需要进入合并流或 addSrc 插件.

Because these two globs will have different bases, I'd suggest breaking it into two separate tasks, and building a third to aggregate them into a single. Otherwise you'll need to get into merging streams or the addSrc plugin.

gulp.task('copy:fonts:bootstrap', function () {
    return gulp.src(
        [
            'public/bower_components/bootstrap/dist/fonts/**/*'
        ],
        {
            base: 'public/bower_components/bootstrap/dist/fonts'
        }
    )
        .pipe(gulp.dest('dist/public/fonts'));
});

gulp.task('copy:fonts:fontawesome', function () {
    return gulp.src(
        [
            'public/bower_components/font-awesome/fonts/**/*'
        ],
        {
            base: 'public/bower_components/font-awesome/fonts'
        }
    )
        .pipe(gulp.dest('dist/public/fonts'));
});

gulp.task('copy:fonts', ['copy:fonts:bootstrap', 'copy:fonts:fontawesome']);

相关文章