gpt4 book ai didi

javascript - 在 Gulp.js 4 函数中为多个文件名创建 for 循环

转载 作者:行者123 更新时间:2023-12-02 22:43:54 27 4
gpt4 key购买 nike

我目前正在尝试每页使用一个 svg Sprite ,以便它只为每个单独的页面加载必要的 svg。目前正在工作,但我想创建一个数组,以便为​​我想要的 N 页调用该任务。

我目前在 gulpfile.js 中有这个结构(第 4 节):

var autoprefixer = require('autoprefixer'),
browsersync = require('browser-sync').create(),
cssnano = require('cssnano'),
sourcemaps = require('gulp-sourcemaps'),
del = require('del'),
gulp = require('gulp'),
imagemin = require('gulp-imagemin'),
newer = require('gulp-newer'),
plumber = require('gulp-plumber'),
postcss = require('gulp-postcss'),
rename = require('gulp-rename'),
sass = require('gulp-sass'),
svgSprite = require('gulp-svg-sprite');

//Create SVG's into one single image file
function svgs(){
return gulp
.src('app/images/src/pageName/*')
.pipe(svgSprite({
shape: {
spacing: {
padding: 5
}
},
mode: {
css: {
dest: './',
layout: 'diagonal',
sprite: 'images/dist/pageName/sprite.svg',
bust: false,
render: {
scss: {
dest: 'sass/modules/sprites/_pageName.scss',
template: 'app/sass/modules/sprites/_pageNameTemplate.scss'
}
}
}
},
variables: {
mapname: 'icons'
}
}))
.pipe(gulp.dest('app/'));
}

exports.svgs = svgs;

这个想法是创建一个包含页面名称的数组并执行 for 循环:

    var pages = ['page1', 'page2',...];

function svgs(){
for (var i = 0; i < pages.length; i++) {

return gulp
.src('app/images/src/' + pages[i] + '/*').........
}

然后在控制台中调用任务,但返回只执行一次迭代,有人以前遇到过这种情况吗?

谢谢!

最佳答案

尝试glob.sync它返回一个数组:

const glob = require('glob');

const pageArray = glob.sync('path/to/your/*.pages');

function svgs(done) {

pageArray.forEach( page => {
return gulp.src(page)
...
};
done();
}

关于javascript - 在 Gulp.js 4 函数中为多个文件名创建 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58490977/

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