如何使用Gulp编译子目录下的JS?

How to compile JS in sub directories using Gulp?

我的文件夹结构:

dashboard >
    components >
        accounts > accounts.js, accountsDirectives.js
        dash > dashApp.js
        settings > settings.js, settingsDirectives.js
        etc...

我在 Gulpfile 中的函数

function compile_js(minify, folder) {
    var jsLibs = gulp.src('client/'+folder+'/_sources/js/libs/*.js');
    var jsPlugins = gulp.src('client/'+folder+'/_sources/js/plugins/*.js');
    var jsCustom = gulp.src('client/'+folder+'/_sources/js/custom/*.js');
    var jsComponents = gulp.src('client/'+folder+'/components/*.js');

    // Order the streams and compile
    return streamqueue({ objectMode: true },
        jsLibs,
        jsPlugins,
        jsCustom,
        jsComponents
    )
    .pipe(concat(folder+'.module.js'))
    .pipe(gulpif(minify, uglify()))
    .pipe(gulp.dest('client/'+folder+'/assets/js'));
};

问题是针对组件目录的这一行:

var jsComponents = gulp.src('client/'+folder+'/components/*.js');

我也试过/components/**/*.js但还是不行。

我找到了 this answer here, which they talk about symlinks,但我想避免使用它。 1) 这似乎是一个 hack,并且 2) 这需要所有当前和未来的开发人员也在他们的计算机上创建准确的符号链接。

有没有另一种方法可以轻松定位和编译目录中包含子目录的所有js文件?

您是否尝试过先创建路径,然后在 gulp.src 参数中使用变量?我也很好奇,既然你正在缩小它们,为什么不使用类似 :

的方式获取其中一些文件的所有文件呢?
var someVar = gulp.src('client/'+folder+'/_sources/js/**/*.js');

var jsPlugins = gulp.src('client/'+folder+'/_sources/js/plugins/*.js');
var jsCustom = gulp.src('client/'+folder+'/_sources/js/custom/*.js');