gpt4 book ai didi

javascript - Gulp 为每个文件夹生成一个文件

转载 作者:搜寻专家 更新时间:2023-10-31 23:38:09 26 4
gpt4 key购买 nike

我正在尝试编写一个 gulp 任务来构建 javascript 文件并为每个文件夹(包括根文件夹)连接一个文件。

我找到了这个解决方案:https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-task-steps-per-folder.md

If you have a set of folders, and wish to perform a set of tasks on each, for instance...

/scripts
/scripts/jquery/*.js
/scripts/angularjs/*.js

...and want to end up with...

/scripts
/scripts/jquery.min.js
/scripts/angularjs.min.js

但是,这只会为 scripts 文件夹中的所有子文件夹构建 *.js 文件。我正在尝试在根文件夹脚本中构建 *.js 文件,即我的预期输出将是:

/scripts.min.js
/scripts/jquery.min.js
/scripts/angularjs.min.js

我是 Node 的新手,所以我现在很困惑如何实现它。非常感谢您对此的帮助。非常感谢。

最佳答案

您可以创建一个单独的任务 (baseScripts) 来为基本目录创建缩小的脚本。然后创建另一个运行 baseScripts 和 subScripts 任务的任务 (allScripts)。

var scriptsPath = 'src/scripts';

function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}

gulp.task('allScripts', ['baseScripts', 'subScripts']);

gulp.task('subScripts', function() {
var folders = getFolders(scriptsPath);

var tasks = folders.map(function(folder) {
return gulp.src(path.join(scriptsPath, folder, '/*.js'))
.pipe(uglify())
.pipe(rename(folder + '.min.js'))
.pipe(gulp.dest(scriptsPath));
});

return merge(tasks);
});

gulp.task('baseScripts', function(){
return gulp.src(scriptsPath + '/*.js')
.pipe(uglify())
.pipe(concat('scripts.min.js'))
.pipe(gulp.dest('src'));
});

关于javascript - Gulp 为每个文件夹生成一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881550/

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