Gulp js src:首先获取最深的文件

时间:2015-03-12 22:34:30

标签: javascript gulp reactjs

我使用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.jsmyComponent.jsmysubComponent.js。但显然,我的顶级文件需要更深层次的文件才能工作。

如何让gulp先加载最深的文件?

1 个答案:

答案 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;
      }
    })