Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var gulp = require('gulp'),
- plumber = require('gulp-plumber'),
- globals = require('./globals');
- gulp.task('fonts', function() {
- var src = globals.filesSelector(['fonts']);
- src.push('./bower_components/bootstrap/fonts/**.*');
- return gulp.src(src)
- .pipe(plumber())
- .pipe(gulp.dest(globals.dist.fonts));
- });
- var underscore = require('underscore');
- var underscoreStr = require('underscore.string');
- var concat = require('gulp-concat');
- var gulp = require('gulp');
- var exclude = ['lib1', 'lib2'];
- gulp.task('bundle-libraries-auto', function(){
- var fs = require('fs');
- var bowerFile = require('./../../bower.json');
- var bowerPackages = bowerFile.dependencies;
- var bowerDir = './bower_components';
- var packagesOrder = [];
- var mainFiles = [];
- console.log(bowerFile.dependencies);
- // Function for adding package name into packagesOrder array in the right order
- function addPackage(name){
- // package info and dependencies
- if (!fs.existsSync(bowerDir + '/' + name + '/bower.json')) {
- console.log('bower.json missing in package `' + name + '`');
- return;
- }
- var info = JSON.parse(fs.readFileSync(bowerDir + '/' + name + '/bower.json', 'utf8'));
- return;
- var dependencies = info.dependencies;
- // add dependencies by repeat the step
- if(!!dependencies){
- underscore.each(dependencies, function(value, key){
- if(exclude.indexOf(key) === -1){
- addPackage(key);
- }
- });
- }
- // and then add this package into the packagesOrder array if they are not exist yet
- if(packagesOrder.indexOf(name) === -1){
- packagesOrder.push(name);
- }
- }
- // calculate the order of packages
- underscore.each(bowerPackages, function(value, key){
- if(exclude.indexOf(key) === -1){ // add to packagesOrder if it's not in exclude
- addPackage(key);
- }
- });
- // get the main files of packages base on the order
- underscore.each(packagesOrder, function(bowerPackage){
- if (!fs.existsSync(bowerDir + '/' + name + '/bower.json')) {
- console.log('bower.json missing in package `' + name + '`');
- return;
- }
- var info = JSON.parse(fs.readFileSync(bowerDir + '/' + name + '/bower.json', 'utf8'));
- var main = info.main;
- var mainFile = main;
- // get only the .js file if mainFile is an array
- if(underscore.isArray(main)){
- underscore.each(main, function(file){
- if(underscoreStr.endsWith(file, '.js')){
- mainFile = file;
- }
- });
- }
- // make the full path
- mainFile = bowerDir + '/' + bowerPackage + '/' + mainFile;
- // only add the main file if it's a js file
- if(underscoreStr.endsWith(mainFile, '.js')){
- mainFiles.push(mainFile);
- }
- });
- console.log(mainFiles);
- });
Advertisement
Add Comment
Please, Sign In to add comment