我使用Gulp构建基于React框架的小型Web应用程序。
要编译客户端脚本,我的任务就是这样开始的:
gulp.task( 'buildClientScripts', function () {
// Get all the js and jsx scripts
// Starts with the app.js file
return gulp.src( [
'app/app.js',
'app/clientScripts/**/*.jsx',
'app/clientScripts/**/*.js',
] )
文件的顺序是我的问题。对于此文件结构:
- clientScripts
---- components
-------- subComponents
------------ mysubComponent.js
-------- myComponent.js
---- main.js
加载顺序为:main.js
,myComponent.js
,mysubComponent.js
。但显然,我的顶级文件需要更深层次的文件才能工作。
如何让gulp先加载最深的文件?
答案 0 :(得分:0)
在gulp.src
读取文件后,您可以使用gulp-sort对文件进行排序。
计算路径中的斜线作为确定深度的粗略方式。
var sort = require('gulp-sort');
var path = require('path');
gulp.task( 'buildClientScripts', function () {
// Get all the js and jsx scripts
// Starts with the app.js file
return gulp.src( [
'app/app.js',
'app/clientScripts/**/*.jsx',
'app/clientScripts/**/*.js',
] )
.pipe(sort(function(file1, file2) {
return countSlashes(file2) - countSlashes(file1);
function countSlashes(file) {
return file.path.split(path.sep).length - 1;
}
})