Gulp concat - 除了一些文件之外的所有文件

Gulp concat - all files except for some

我一直在寻找这个,但没有找到。

我正在尝试编写一个 gulp 任务,该任务应该连接我的 lib 文件夹中的所有 js 文件,一些除外。

我尝试了以下方法,使用 gulp-ignore,但没有成功:

var gulpIgnore = require('gulp-ignore');

var ignoreIonic = '!./www/lib/ionic/';

gulp.task('unify-libs', function () {
    gulp.src(paths.libs)
        .pipe(sourcemaps.init())
        .pipe(ngAnnotate({
            single_quotes: true
        }))
        .pipe(gulpIgnore.exclude(ignoreIonic))
        .pipe(concat('libs.js'))
        .pipe(uglify())
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./src/js'));
});

我的文件夹结构如下:

www
 |--lib
    |--ionic
    |   |--css
    |   |--fonts
    |   |--js
    |   |   |--angular
    |   |   |--angular-ui
    |   |   |--ionic.bundle.js
    |   |   |--ionic.bundle.min.js
    |   |   |--ionic.js
    |   |   |--ionic.min.js
    |   |   |--ionic-angular.js
    |   |   |--ionic-angular.min.js
    |   |--scss
    |--test.js

我试图通过 gulp 任务实现的是:

我想连接 lib 文件夹 中的所有文件,但在 ionic->js 中我只想连接 ionic.bundle.min.js到最后的 javascript 而不是所有文件。

有什么帮助吗?谢谢

我的帮助并不直接,但从长远来看可能会更好 运行。我建议不要重新发明轮子并使用经过验证的软件包进行移动应用程序开发。那里有一个很棒的 Yeoman 生成器,它将从头开始提供离子启动项目,其中包括 gulp 缩小等所有额外功能: generator-m-ionic

最后我是这样解决的:

var paths = {
    libs: ['./www/lib/**/*.js', '!./www/lib/ionic/**'],
    ....
};

gulp.task('unify-libs', function () {
    gulp.src(paths.libs)
        .pipe(sourcemaps.init())
        .pipe(ngAnnotate({single_quotes: true}))
        .pipe(concat('libs.js'))
        .pipe(uglify())
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./src/' + appRelease + '/js'));
});

现在正在编译 lib 文件夹中的所有文件,ionic 文件夹中的任何文件除外。我刚刚决定将我需要的唯一文件直接复制到我的 src 文件夹中,这让我的生活更轻松。

希望对您有所帮助。