我想从我的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
}));
});
答案 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
。