Gulp 吞咽-压缩子文件夹的内容&;以他们的名字命名这些档案
我想使用Gulp&Gulp-zip来:Gulp 吞咽-压缩子文件夹的内容&;以他们的名字命名这些档案,gulp,gulp-zip,Gulp,Gulp Zip,我想使用Gulp&Gulp-zip来: 压缩/lessons/文件夹的每个子文件夹 在原始文件夹名称之后命名每个存档。因此,归档文件夹/lessons/1-hermit-crab/应命名为1-hermit-crab.zip 将所有这些存档移到/lessons/文件夹中 我已经开始这样做了,但是由于无法检索ziped目录的名称而陷入困境,因此我可以将其用作存档名称。所以我现在将档案保存在子文件夹中 谢谢你的帮助 gulp.task('zip-lessons', function() { /
/lessons/
文件夹的每个子文件夹/lessons/1-hermit-crab/
应命名为1-hermit-crab.zip
/lessons/
文件夹中gulp.task('zip-lessons', function() {
// Get an array of subdirectories under ./lessons/
var subDirectories = glob.sync('./lessons/*/');
// For each directory…
subDirectories.forEach(function (subDirectory) {
return gulp.src(subDirectory + '**')
.pipe(zip('lesson.zip'))
.pipe(gulp.dest(subDirectory));
});
});
您可以使用节点的
路径
模块获取子目录的名称,如下所示:
const path = require('path');
const dirName = path.parse('./folderA/folderB').base // -> 'folderB'
并将目录名传递给zip()
:
我的同事为我提供了这个有效的解决方案,所以我现在正在使用它
const gulp = require('gulp');
const zip = require('gulp-zip');
var fs = require('fs');
var path = require('path');
// Functions
function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
// Tasks
// Zip each folder in /lessons and place the archive in the /lessons root
gulp.task('zip-lessons', () => {
let folders = getFolders('lessons/');
console.log(folders)
var tasks = folders.map(function(folder) {
gulp.src(`lessons/${folder}/**`)
.pipe(zip(`${folder}.zip`))
.pipe(gulp.dest('lessons'))
})
});
const gulp = require('gulp');
const zip = require('gulp-zip');
var fs = require('fs');
var path = require('path');
// Functions
function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
// Tasks
// Zip each folder in /lessons and place the archive in the /lessons root
gulp.task('zip-lessons', () => {
let folders = getFolders('lessons/');
console.log(folders)
var tasks = folders.map(function(folder) {
gulp.src(`lessons/${folder}/**`)
.pipe(zip(`${folder}.zip`))
.pipe(gulp.dest('lessons'))
})
});