Gulp - 仅定位子文件夹中的一个文件
Gulp - Target only a files in Subfolders
我有一个 gulpfile 监视以下文件夹中的更改:
SCSSSource = '../framework/**/*.scss';
这将监视以下示例文件中的更改:
'../framework/styling.scss'
// 根文件夹
'../framework/subfolder1/styling.scss'
'../framework/subfolder2/styling.scss'
我想从根文件夹 (1.) 中排除所有文件,只留下一个子文件夹供观看。我应该如何修改 SCSSSource
字符串才能实现?
完整代码:
var gulp = require('gulp');
var watch = require('gulp-watch');
var concat = require('gulp-concat-util');
gulp.task('watch', function(){
// "./*" - all in current foler
// "./**" - all in current foler and subfolders
// SCSS FILE
var SCSSPath = '../framework/';
var SCSSName = '**/*.scss';
var SCSSSource = SCSSPath + SCSSName;
function concatSCSS(){
// concatenate files
gulp.src(SCSSSource)
.pipe(concat('_cssfw.scss', {
process: function(src){
src = "\n\n\n\/\/ ----------------------------------------------------------------------\n\n"
+ src;
return src;
}
}))
.pipe(concat.header('\/\/SCSS Framework\n\n'))
.pipe(gulp.dest(SCSSPath + "./"));
}
watch('../framework/**/*.scss', function (info) {
concatSCSS();
console.log(info.event + " scss: " + info.history[0].replace(/^.*[\\/]/, ''))
});
concatSCSS();
});
我认为您可以使用 glob 模式排除根文件夹中的 .scss
文件,如下所示:
var SCSSSource = SCSSPath + SCSSName;
var exclude = "!../framework/*.scss"
function concatSCSS(){
// concatenate files
gulp.src([SCSSSource, exclude])
这样你只能从子目录中获取 .scss 文件
我有一个 gulpfile 监视以下文件夹中的更改:
SCSSSource = '../framework/**/*.scss';
这将监视以下示例文件中的更改:
'../framework/styling.scss'
// 根文件夹'../framework/subfolder1/styling.scss'
'../framework/subfolder2/styling.scss'
我想从根文件夹 (1.) 中排除所有文件,只留下一个子文件夹供观看。我应该如何修改 SCSSSource
字符串才能实现?
完整代码:
var gulp = require('gulp');
var watch = require('gulp-watch');
var concat = require('gulp-concat-util');
gulp.task('watch', function(){
// "./*" - all in current foler
// "./**" - all in current foler and subfolders
// SCSS FILE
var SCSSPath = '../framework/';
var SCSSName = '**/*.scss';
var SCSSSource = SCSSPath + SCSSName;
function concatSCSS(){
// concatenate files
gulp.src(SCSSSource)
.pipe(concat('_cssfw.scss', {
process: function(src){
src = "\n\n\n\/\/ ----------------------------------------------------------------------\n\n"
+ src;
return src;
}
}))
.pipe(concat.header('\/\/SCSS Framework\n\n'))
.pipe(gulp.dest(SCSSPath + "./"));
}
watch('../framework/**/*.scss', function (info) {
concatSCSS();
console.log(info.event + " scss: " + info.history[0].replace(/^.*[\\/]/, ''))
});
concatSCSS();
});
我认为您可以使用 glob 模式排除根文件夹中的 .scss
文件,如下所示:
var SCSSSource = SCSSPath + SCSSName;
var exclude = "!../framework/*.scss"
function concatSCSS(){
// concatenate files
gulp.src([SCSSSource, exclude])
这样你只能从子目录中获取 .scss 文件