我希望能够在watch
中将gulp
任务添加到js
中的所有frontend/js
文件和以下任何其他js文件中1} p>
gulp.watch('./frontend/js/**/*.js', ['browserify']);
这只会将js
个文件定位到一个文件夹
答案 0 :(得分:34)
它应该匹配任意数量的子目录:
**
如果是" globstar"单独在路径部分,然后它匹配零个或多个目录和子目录搜索匹配。它不会抓取符号链接的目录。
https://github.com/isaacs/node-glob
那里有符号链接的目录吗?
我不认为你会在本地遍历你的符号链接目录。我建议您查看node.js fs.readdir recursive directory search,看看是否有任何解决方案可以应用于您的用例。问题或答案中没有任何内容专门针对符号链接,因此我不知道是否有适合您的解决方案。如果您可以使用其中一个解决方案获取一系列解除引用的路径名,那么您只需将数组传递给gulp.src()
。
答案 1 :(得分: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']);
});
完美无缺。我也在子目录中尝试了这个('scripts / symlinked-scripts')并且也是成功的。
答案 2 :(得分:0)
我认为不值得努力:
gulp.watch('./frontend/js/', ['browserify']);