【问题标题】:Gulp - Target all files in a folder and its subfoldersGulp - 定位文件夹及其子文件夹中的所有文件
【发布时间】:2015-02-16 01:52:32
【问题描述】:

我希望能够将gulp 中的watch 任务添加到frontend/js 中的所有js 文件以及下面的任何其他js 文件中

 gulp.watch('./frontend/js/**/*.js', ['browserify']);

这将只针对js 一个文件夹深的文件

【问题讨论】:

    标签: javascript gulp


    【解决方案1】:

    它应该匹配任意数量的子目录:

    ** 如果“globstar”单独存在于路径部分,则它匹配零个或多个目录和子目录以搜索匹配项。它不会抓取符号链接的目录。

    https://github.com/isaacs/node-glob

    你那里有符号链接的目录吗?

    符号链接

    我认为您不会通过 gulp 原生遍历您的符号链接目录。我建议您查看node.js fs.readdir recursive directory search,看看这些解决方案是否可以应用于您的用例。问题或答案中没有任何内容专门针对符号链接,所以我不知道那里是否有适合您的解决方案。如果您可以使用其中一种解决方案获得一组取消引用的路径名,那么您只需将该数组传递给gulp.src()

    【讨论】:

    • 实际上我确实有 smylinks。好戏老伙计
    • @KellyJAndrews 除了我还不能定位所有文件及其子文件夹中的文件 :) 所以对我来说还没有任何答案
    • 您的所有子文件夹都进行了符号链接吗?
    • 整个js文件夹是;)
    • @Jamie Hutber 请参阅更新答案的符号链接部分。
    【解决方案2】:

    我刚刚做了一些测试 - 这实际上对我来说效果很好。

    我目前有以下结构 -

    --apps
      --scripts
      ----test.js
      ----test-folder
      ------test2.js
      ------test-folder-deep
      --------test3.js
      --myApp
      ----scripts-symlinked (symlinked to apps/scripts)
      ----gulpfile.js
    

    我使用以下方法设置了我的符号链接文件夹(在 Mac 上 - 来自“myApp”文件夹):

    ln -s /Users/kandrews/apps/scripts ./scripts-symlinked
    

    在我的gulpfile.js 我有以下内容:

    var gulp = require('gulp'),
        jshint = require('gulp-jshint');
    
    gulp.task('jshint', function () {
        gulp.src('./scripts-symlinked/**/*.js')
            .pipe(jshint())
            .pipe(jshint.reporter('default'));
    });
    
    gulp.task('watch', function () {
        gulp.watch('./scripts-symlinked/**/*.js', ['jshint']);
    });
    

    完美运行。我也在一个子目录中尝试过这个('scripts/symlinked-scripts')并且也成功了。

    【讨论】:

    • 也许我误解了@Jamie Hutber 的文件夹结构。我认为js 文件夹的内容是符号链接,而不是js 本身。但如果是这样的话,那么根据你的结果,我不知道为什么他们原来的 glob 不起作用。
    【解决方案3】:

    我认为不值得做困难:

    gulp.watch('./frontend/js/', ['browserify']);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2017-04-06
      • 2011-09-09
      • 1970-01-01
      相关资源
      最近更新 更多