读完这篇文章后question ,这个包documentation还有一些关于 glob 的事情 here ,我找不到使以下代码片段仅过滤 JavaScript 文件而不过滤其父文件夹的方法:
gulp.task("distribution", function () {
return gulp.src("distribution/**/*.js", { nodir: true })
.pipe(gulp.dest("www/javascripts"));
});
我得到的是以下文件结构:
javascripts/bootstrap/dist/js/bootstrap.js
javascripts/hammerjs/hammer.js
javascripts/jquery/dist/jquery.js
javascripts/localforage/dist/localforage.js
javascripts/moment/moment.js
javascripts/vue/dist/vue.js
javascripts/vue-touch/vue-touch.js
我想要得到的是以下文件结构:
javascripts/bootstrap.js
javascripts/hammer.js
javascripts/jquery.js
javascripts/localforage.js
javascripts/moment.js
javascripts/vue.js
javascripts/vue-touch.js
我也尝试过这个代码片段,但没有任何结果:
gulp.task("distribution", function () {
const filterToApply = filter("*.js", { restore: true });
return gulp.src("distribution/**")
.pipe(filterToApply)
.pipe(gulp.dest("www/javascripts"));
});
虽然这个给我的结果与第一个相同:
gulp.task("distribution", function () {
const filterToApply = filter("**/*.js", { restore: true });
return gulp.src("distribution/**")
.pipe(filterToApply)
.pipe(gulp.dest("www/javascripts"));
});
最佳答案
尝试使用 gulp-flatten 对该过滤器进行管道传输通过添加:
.pipe(flatten())
位于 gulp.dest 管道之前。
例如:
var flatten = require('gulp-flatten');
gulp.src('distribution/**/*.js')
.pipe(flatten())
.pipe(gulp.dest('"www/javascripts'));
关于javascript - Gulp JavaScript 文件过滤,无需其父文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38034780/