Gulp v3.8.8不会连接控制器文件夹

时间:2019-01-22 17:51:10

标签: angularjs gulp

我想从我的js文件夹中排除控制器目录,并将控制器文件js保持在dist文件夹中的相同条件。

示例:

js/controller/order/controller.js

js/controller/item/controller.js

因此,当我构建项目时,它应该位于具有相同结构的dist文件夹中,而不是单个js文件。

gulp.task('js', function() {
    gulp.src('./styles')
        .pipe(concat('scripts.js'))
        .pipe(gulp.dest('./dist/js'))
        .pipe(browserSync.reload({
            stream: true
        }));
});

2 个答案:

答案 0 :(得分:1)

您可以使用否定的blob排除控制器文件夹:

# example structure 
src
 |--gulpfile.js
 |
 |--include
 |    |-- index.js
 |    `-- another.js
 |
 `--exclude
      `-- exclude.js

然后在您的gulp文件中:

#gulpfile.js
const gulp = require('gulp');
const merge = require('merge-stream');
const concat = require('gulp-concat');

gulp.task('js', function() {
  const copy = gulp.src('./src/exclude/**/*.js')
    .pipe(gulp.dest('./dist/js'))

  const build = gulp.src(['./src/**/*.js', '!./src/exclude/**/*.js'])
    .pipe(concat('concat.js'))
    .pipe(gulp.dest('./dist/js'))

  return merge(copy, build);
});

或者,如果您不希望他们参与一项任务:

const gulp = require('gulp');
const concat = require('gulp-concat');

gulp.task('concatJs', function() {
  return gulp.src(['./src/**/*.js', '!./src/exclude/**/*.js'])
    .pipe(concat('concat.js'))
    .pipe(gulp.dest('./dist/js'))
});

gulp.task('copyJs', function() {
  return gulp.src('./src/exclude/**/*.js')
  .pipe(gulp.dest('./dist/js'))
})

gulp.task('js', ['concatJs', 'copyJs']);

结果:

dist
  `--js
      |--concat.js
      `--exclude.js

答案 1 :(得分:0)

使用正则表达式将控制器从concat任务中排除。您可以编写另一个任务以将控制器复制到dist文件夹。

有关更多信息:https://www.npmjs.com/package/gulp-copy

您当然可以使用正则表达式,并且如果您想启动任务,请尽可能使用gulp.parallel