javascript - Gulp JavaScript 文件过滤,无需其父文件夹

标签 javascript npm gulp bower

读完这篇文章后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/

相关文章:

javascript - 是什么阻止了该动画的自动执行?

angular - Observable.Observable.of 不是一个函数 - 不能通过更改 import 语句来解决

javascript - 使用 gulp 将 karma 测试拆分为可运行 block 的最佳方法是什么?

javascript - 我需要将多个输入加在一起,这些输入是 2 个其他输入的只读总计

javascript - Codeigniter 3 上的 loadData() 函数

javascript - 如何通过 php 将正则表达式变量保存为 .json 文件?

typescript - @类型/ react 表 : How to include configured types for users of my package?

angular - 安装angular2 RC4路由器时找不到兼容版本: @angular/router@^2. 0.0-rc.4错误

gulp - .jade 文件更新 html 文件,但浏览器同步刷新太早

javascript - 运行 gulp 给出 "path.js:7 throw new TypeError(' 路径必须是字符串。收到 ' + inspect(path));"