eri*_*yen 3 javascript node.js gulp
我正在尝试编写一个 gulp 任务来构建 javascript 文件并为每个文件夹(包括根文件夹)连接一个文件。
我找到了这个解决方案:https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-task-steps-per-folder.md
例如,如果您有一组文件夹,并希望对每个文件夹执行一组任务...
Run Code Online (Sandbox Code Playgroud)/scripts /scripts/jquery/*.js /scripts/angularjs/*.js...并希望最终...
Run Code Online (Sandbox Code Playgroud)/scripts /scripts/jquery.min.js /scripts/angularjs.min.js
*.js但是,这只会为文件夹内的所有子文件夹构建文件scripts。我正在尝试*.js在根文件夹脚本中构建文件,即我的预期输出将是:
/scripts.min.js
/scripts/jquery.min.js
/scripts/angularjs.min.js
Run Code Online (Sandbox Code Playgroud)
我是节点新手,所以我现在很困惑如何实现这一目标。非常感谢您对此的帮助。多谢。
您可以创建一个单独的任务 (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'));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1863 次 |
| 最近记录: |