You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							96 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							96 lines
						
					
					
						
							2.1 KiB
						
					
					
				| var del         = require('del'); | |
| var gulp        = require('gulp'); | |
| var babel       = require('gulp-babel'); | |
| var bump        = require('gulp-bump'); | |
| var concat      = require('gulp-concat'); | |
| var header      = require('gulp-header'); | |
| var minify      = require('gulp-minify-css'); | |
| var plumber     = require('gulp-plumber'); | |
| var prefixer    = require('gulp-autoprefixer'); | |
| var rename      = require('gulp-rename'); | |
| var uglify      = require('gulp-uglify'); | |
| var sass        = require('gulp-sass'); | |
| var umd         = require('gulp-wrap-umd'); | |
| 
 | |
| // Variables | |
| var distDir = './dist'; | |
| var pkg = require('./package.json'); | |
| var banner = ['/*!', pkg.name, pkg.version, '*/\n'].join(' '); | |
| var umdOptions = { | |
|   exports: 'Tether', | |
|   namespace: 'Tether' | |
| }; | |
| 
 | |
| 
 | |
| // Clean | |
| gulp.task('clean', function() { | |
|   del.sync([distDir]); | |
| }); | |
| 
 | |
| 
 | |
| // Javascript | |
| gulp.task('js', function() { | |
|   gulp.src([ | |
|     './src/js/utils.js', | |
|     './src/js/tether.js', | |
|     './src/js/constraint.js', | |
|     './src/js/abutment.js', | |
|     './src/js/shift.js' | |
|   ]) | |
|     .pipe(plumber()) | |
|     .pipe(babel()) | |
|     .pipe(concat('tether.js')) | |
|     .pipe(umd(umdOptions)) | |
|     .pipe(header(banner)) | |
| 
 | |
|     // Original | |
|     .pipe(gulp.dest(distDir + '/js')) | |
| 
 | |
|     // Minified | |
|     .pipe(uglify()) | |
|     .pipe(rename({suffix: '.min'})) | |
|     .pipe(gulp.dest(distDir + '/js')); | |
| }); | |
| 
 | |
| 
 | |
| // CSS | |
| gulp.task('css', function() { | |
|   gulp.src('./src/css/**/*.sass') | |
|     .pipe(plumber()) | |
|     .pipe(sass()) | |
|     .pipe(prefixer()) | |
| 
 | |
|     // Original | |
|     .pipe(gulp.dest(distDir + '/css')) | |
| 
 | |
|     // Minified | |
|     .pipe(minify()) | |
|     .pipe(rename({suffix: '.min'})) | |
|     .pipe(gulp.dest(distDir + '/css')); | |
| }); | |
| 
 | |
| 
 | |
| // Version bump | |
| var VERSIONS = ['patch', 'minor', 'major']; | |
| for (var i = 0; i < VERSIONS.length; ++i){ | |
|   (function(version) { | |
|     gulp.task('version:' + version, function() { | |
|       gulp.src(['package.json', 'bower.json', 'component.json']) | |
|         .pipe(bump({type: version})) | |
|         .pipe(gulp.dest('.')); | |
|     }); | |
|   })(VERSIONS[i]); | |
| } | |
| 
 | |
| 
 | |
| // Watch | |
| gulp.task('watch', ['js', 'css'], function() { | |
|   gulp.watch('./src/js/**/*', ['js']); | |
|   gulp.watch('./src/css/**/*', ['css']); | |
| }); | |
| 
 | |
| 
 | |
| // Defaults | |
| gulp.task('build', ['js', 'css']); | |
| gulp.task('default', ['build']); | |
| 
 |