2016-06-25 54 views
1

我正在使用Gulp分別連接/縮小來自bower文件夾(使用main-bower-files)和src文件夾的所有JS/CSS文件。我使用一飲而盡的負載插件加載從的package.json以下依賴性(所有這些存在於node_modules):Gulp沒有使用main-bower-files創建JS和CSS文件

"dependencies": { 
    "gulp": "^3.9.1", 
    "gulp-concat": "^2.6.0", 
    "gulp-filter": "^4.0.0", 
    "gulp-load-plugins": "^1.2.4", 
    "gulp-rename": "^1.2.2", 
    "gulp-uglify": "^1.5.3", 
    "main-bower-files": "^2.13.1" 
} 

這裏是gulpfile.js:

// Include Gulp 
var gulp = require('gulp'); 

var src = 'src/'; 
var dest = 'public/'; 

// Include plugins 
var plugins = require("gulp-load-plugins")({ 
    pattern: ['gulp-*', 'gulp.*', 'main-bower-files'], 
    replaceString: /\bgulp[\-.]/ 
}); 

//Concat + Minify JS 
gulp.task('js', function() { 

var jsFiles = ['/src/js/*']; 

gulp.src(plugins.mainBowerFiles().concat(jsFiles)) 
    .pipe(plugins.filter('*.js')) 
    .pipe(plugins.concat('main.js')) 
    .pipe(plugins.uglify()) 
    .pipe(gulp.dest('public/js')); 

}); 
//Concat + Minify CSS 
gulp.task('css', function() { 

var cssFiles = ['src/css/*']; 

gulp.src(plugins.mainBowerFiles().concat(cssFiles)) 
    .pipe(plugins.filter('*.css')) 
    .pipe(plugins.concat('main.min.css')) 
    .pipe(plugins.uglify()) 
    .pipe(gulp.dest(dest + 'css')); 

}); 

// Default Task 
gulp.task('default', ['js','css']); 

咕嘟咕嘟不在控制檯中提供任何錯誤,但是JS和CSS文件都沒有被創建。

+0

'console.log(plugins.mainBowerFiles())'看看它是否返回空數組? – kaxi1993

+0

'plugins.mainBowerFiles()'正在按照預期返回文件路徑數組。 –

回答

1

最終,這個問題縮小到gulp-filter沒有返回任何文件。對於任何人誰試圖類似的設置,我結束了使用mainBowerFiles過濾要達到相同的最終結果文件採取了略微備用路徑:

// Include Gulp 
var gulp = require('gulp'); 

// Include plugins 
var plugins = require("gulp-load-plugins")({ 
    pattern: ['gulp-*', 'gulp.*', 'main-bower-files'], 
    replaceString: /\bgulp[\-.]/ 
}); 


var src = 'src/'; 
var dest = 'public/'; 


//Concat + Minify JS 
gulp.task('test', function() { 

console.log(plugins); 

}); 


//Concat + Minify JS 
gulp.task('js', function() { 

var jsFiles = ['src/js/*']; 

gulp.src(plugins.mainBowerFiles('**/*.js').concat(jsFiles)) 
    .pipe(plugins.concat('main.min.js')) 
    .pipe(plugins.uglify()) 
    .pipe(gulp.dest(dest + 'js')); 

}); 

gulp.task('css', function() { 

    var cssFiles = ['src/css/*']; 

    gulp.src(plugins.mainBowerFiles('**/*.css', { 
     overrides: { 
      bootstrap: { 
       main: [ 
        './dist/css/bootstrap.min.css' 
       ] 
      } 
     } 
    }).concat(cssFiles)) 
    .pipe(plugins.concat('main.min.css')) 
    .pipe(plugins.cleanCss()) 
    .pipe(gulp.dest(dest + 'css')); 

}); 


// Default Task 
gulp.task('default', ['js','css']); 
+0

嘿乍得,那麼你怎麼過濾其他文件呢?我嘗試了你的方法,它爲我工作,但它有點可怕 – moesphemie

1

我有相同的問題,原來的「大口 - 篩選器」是行不通的,因爲這行:

.pipe(plugins.filter('*.js')) 

它應該是以下幾點:

.pipe(plugins.filter('**/*.js')) 

同樣應與CSS發生,它工作正常。