【问题标题】:How to compile JS in sub directories using Gulp?如何使用 Gulp 在子目录中编译 JS?
【发布时间】:2015-02-23 05:55:06
【问题描述】:

我的文件夹结构:

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 文件?

【问题讨论】:

    标签: javascript gulp gulp-concat


    【解决方案1】:

    您是否尝试过先创建路径,然后在 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');
    

    【讨论】:

    • 好吧,我不得不分解源代码,因为我需要在自定义之前编译插件,否则我的自定义particle.js 文件会中断。不过有趣的是,/**/*.js 似乎适用于我的 js 文件夹,不知道为什么不适用于我的 components 文件夹
    • 你试过var jsComponents = gulp.src('client/'+folder+'/**/*.js');
    • 查看您上面的文件夹结构看起来应该是var jsComponents = gulp.src('dashboard/components/**/*.js');
    • 是的,现在它正在工作.../**/ 正在抓取所有子目录,谢谢你 stackoverflow 魔术大声笑,现在开始下一个错误 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2016-05-24
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 2016-08-01
    相关资源
    最近更新 更多