【发布时间】:2015-02-16 01:52:32
【问题描述】:
我希望能够将gulp 中的watch 任务添加到frontend/js 中的所有js 文件以及下面的任何其他js 文件中
gulp.watch('./frontend/js/**/*.js', ['browserify']);
这将只针对js 一个文件夹深的文件
【问题讨论】:
标签: javascript gulp
我希望能够将gulp 中的watch 任务添加到frontend/js 中的所有js 文件以及下面的任何其他js 文件中
gulp.watch('./frontend/js/**/*.js', ['browserify']);
这将只针对js 一个文件夹深的文件
【问题讨论】:
标签: javascript gulp
它应该匹配任意数量的子目录:
**如果“globstar”单独存在于路径部分,则它匹配零个或多个目录和子目录以搜索匹配项。它不会抓取符号链接的目录。
https://github.com/isaacs/node-glob
你那里有符号链接的目录吗?
我认为您不会通过 gulp 原生遍历您的符号链接目录。我建议您查看node.js fs.readdir recursive directory search,看看这些解决方案是否可以应用于您的用例。问题或答案中没有任何内容专门针对符号链接,所以我不知道那里是否有适合您的解决方案。如果您可以使用其中一种解决方案获得一组取消引用的路径名,那么您只需将该数组传递给gulp.src()。
【讨论】:
我刚刚做了一些测试 - 这实际上对我来说效果很好。
我目前有以下结构 -
--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')并且也成功了。
【讨论】:
js 文件夹的内容是符号链接,而不是js 本身。但如果是这样的话,那么根据你的结果,我不知道为什么他们原来的 glob 不起作用。
我认为不值得做困难:
gulp.watch('./frontend/js/', ['browserify']);
【讨论】: