95 lines
2.6 KiB
JavaScript
95 lines
2.6 KiB
JavaScript
|
|
'use strict';
|
||
|
|
|
||
|
|
var gulp = require('gulp'),
|
||
|
|
rename = require('gulp-rename'),
|
||
|
|
uglify = require('gulp-uglify'),
|
||
|
|
ts = require('gulp-typescript'),
|
||
|
|
less = require('gulp-less'),
|
||
|
|
autoprefixer = require('autoprefixer'),
|
||
|
|
postcss = require('gulp-postcss'),
|
||
|
|
cssnano = require('cssnano'),
|
||
|
|
browserSync = require('browser-sync').create(),
|
||
|
|
templateCache = require('gulp-angular-templatecache'),
|
||
|
|
concat = require('gulp-concat'),
|
||
|
|
orderedMergeStream = require('ordered-merge-stream');
|
||
|
|
|
||
|
|
var tsProject = ts.createProject('tsconfig.json', {
|
||
|
|
noExternalResolve: true
|
||
|
|
});
|
||
|
|
|
||
|
|
var production = true;
|
||
|
|
|
||
|
|
gulp.task('default', ['serve']);
|
||
|
|
gulp.task('build', ['js', 'css']);
|
||
|
|
|
||
|
|
|
||
|
|
gulp.task('templates', function () {
|
||
|
|
return gulp.src('lib/**/*.tpl.html')
|
||
|
|
.pipe(templateCache('material-steppers-tpl.js', {
|
||
|
|
root: 'mdSteppers',
|
||
|
|
module: 'mdSteppers'
|
||
|
|
}))
|
||
|
|
// .pipe(gulp.dest('dist'))
|
||
|
|
.pipe(gulp.dest('demo'));
|
||
|
|
});
|
||
|
|
|
||
|
|
gulp.task('serve', ['build'], function (callback) {
|
||
|
|
production = false;
|
||
|
|
browserSync.init({
|
||
|
|
server: {
|
||
|
|
baseDir: "./demo",
|
||
|
|
routes: {
|
||
|
|
"/lib": "mdSteppers"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
ui: false
|
||
|
|
});
|
||
|
|
gulp.watch("lib/*.ts", ['js']);
|
||
|
|
gulp.watch("lib/*.html", ['js']);
|
||
|
|
gulp.watch("lib/*.less", ['css']);
|
||
|
|
gulp.watch("demo/*.html").on('change', browserSync.reload);
|
||
|
|
});
|
||
|
|
|
||
|
|
gulp.task('css', function (callback) {
|
||
|
|
var stream = gulp.src('lib/*.less')
|
||
|
|
.pipe(less())
|
||
|
|
.pipe(postcss([autoprefixer({
|
||
|
|
browsers: [
|
||
|
|
'ie >= 10',
|
||
|
|
'ie_mob >= 10',
|
||
|
|
'ff >= 30',
|
||
|
|
'chrome >= 34',
|
||
|
|
'safari >= 7',
|
||
|
|
'opera >= 23',
|
||
|
|
'ios >= 7',
|
||
|
|
'android >= 4.4',
|
||
|
|
'bb >= 10'
|
||
|
|
]
|
||
|
|
})]))
|
||
|
|
.pipe(gulp.dest('dist'))
|
||
|
|
.pipe(gulp.dest('demo'))
|
||
|
|
.pipe(rename({ extname: '.min.css' }))
|
||
|
|
.pipe(gulp.dest('demo'))
|
||
|
|
.pipe(postcss([cssnano({
|
||
|
|
discardComments: { removeAll: true }
|
||
|
|
})]))
|
||
|
|
.pipe(gulp.dest('dist'));
|
||
|
|
return stream;
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
gulp.task('js', ['templates'], function (callback) {
|
||
|
|
var stream = gulp.src('lib/*.ts')
|
||
|
|
.pipe(ts(tsProject))
|
||
|
|
.pipe(gulp.dest('dist'))
|
||
|
|
.pipe(gulp.dest('demo'));
|
||
|
|
|
||
|
|
return orderedMergeStream([stream, gulp.src('demo/*-tpl.js')])
|
||
|
|
.pipe(concat('material-steppers.js'))
|
||
|
|
.pipe(gulp.dest('dist'))
|
||
|
|
.pipe(gulp.dest('demo'))
|
||
|
|
.pipe(rename({ extname: '.min.js' }))
|
||
|
|
.pipe(gulp.dest('demo'))
|
||
|
|
.pipe(uglify())
|
||
|
|
.pipe(gulp.dest('dist'));
|
||
|
|
});
|