Gulp - 锁定一个文件夹及其子文件夹中的所有文件。

问题描述 投票:28回答:3

我希望能够添加一个...。watch 从事 gulp 对所有的人 js 文件在 frontend/js 及以下任何其他js文件

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

这将只针对 js 文件夹深处

javascript gulp
3个回答
37
投票

它应该匹配任何数量的子目录。

** 如果一个 "globstar "单独出现在路径部分,那么它就会匹配零个或更多的目录和子目录搜索匹配。它不抓取符号链接的目录。

https:/github.comisaacsnode-glob

您是否有符号链接的目录在里面?

交叉链接

我不认为你会得到gulp来原生穿越你的symlinked目录。我建议你看看 node.js fs.readdir 递归目录搜索 看看是否有任何解决方案可以应用到你的使用案例中。在问题和答案中没有专门针对符号链接的内容,所以我不知道是否有适合你的解决方案。如果你能用其中一个解决方案得到一个去引用路径名的数组,那么你可以将数组传递给 gulp.src().


6
投票

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

我目前有以下结构

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

我设置了我的symlink文件夹(在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']);
});

完美的工作。我还在一个子目录中也试了一下('scriptssymlinked-scripts'),也成功了。


0
投票

我认为这不值得做难。

gulp.watch('./frontend/js/', ['browserify']);
© www.soinside.com 2019 - 2024. All rights reserved.