|
@@ -0,0 +1,145 @@
|
|
|
+/**
|
|
|
+ * Licensed to the Apache Software Foundation (ASF) under one
|
|
|
+ * or more contributor license agreements. See the NOTICE file
|
|
|
+ * distributed with this work for additional information
|
|
|
+ * regarding copyright ownership. The ASF licenses this file
|
|
|
+ * to you under the Apache License, Version 2.0 (the
|
|
|
+ * "License"); you may not use this file except in compliance
|
|
|
+ * with the License. You may obtain a copy of the License at
|
|
|
+ *
|
|
|
+ * http://www.apache.org/licenses/LICENSE-2.0
|
|
|
+ *
|
|
|
+ * Unless required by applicable law or agreed to in writing, software
|
|
|
+ * distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
+ * See the License for the specific language governing permissions and
|
|
|
+ * limitations under the License.
|
|
|
+ */
|
|
|
+'use strict';
|
|
|
+// generated on 2014-06-25 using generator-gulp-webapp 0.1.0
|
|
|
+
|
|
|
+var gulp = require('gulp');
|
|
|
+
|
|
|
+// load plugins
|
|
|
+var $ = require('gulp-load-plugins')();
|
|
|
+
|
|
|
+gulp.task('styles', function () {
|
|
|
+ return gulp.src('app/styles/main.css')
|
|
|
+ .pipe($.autoprefixer('last 1 version'))
|
|
|
+ .pipe(gulp.dest('.tmp/styles'))
|
|
|
+ .pipe($.size());
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('scripts', function () {
|
|
|
+ return gulp.src('app/scripts/**/*.js')
|
|
|
+ .pipe($.jshint())
|
|
|
+ .pipe($.jshint.reporter(require('jshint-stylish')))
|
|
|
+ .pipe($.size());
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('html', ['styles'], function () {
|
|
|
+ var jsFilter = $.filter('**/*.js');
|
|
|
+ var cssFilter = $.filter('**/*.css');
|
|
|
+
|
|
|
+ return gulp.src('app/*.html')
|
|
|
+ .pipe($.useref.assets({searchPath: '{.tmp,app}'}))
|
|
|
+ .pipe(jsFilter)
|
|
|
+ .pipe($.uglify())
|
|
|
+ .pipe(jsFilter.restore())
|
|
|
+ .pipe(cssFilter)
|
|
|
+ .pipe($.csso())
|
|
|
+ .pipe(cssFilter.restore())
|
|
|
+ .pipe($.useref.restore())
|
|
|
+ .pipe($.useref())
|
|
|
+ .pipe(gulp.dest('dist'))
|
|
|
+ .pipe($.size());
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('views', function() {
|
|
|
+ return gulp.src('app/views/**/*.html')
|
|
|
+ .pipe(gulp.dest('dist/views'));
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('images', function () {
|
|
|
+ return gulp.src('app/images/**/*')
|
|
|
+ .pipe($.cache($.imagemin({
|
|
|
+ optimizationLevel: 3,
|
|
|
+ progressive: true,
|
|
|
+ interlaced: true
|
|
|
+ })))
|
|
|
+ .pipe(gulp.dest('dist/images'))
|
|
|
+ .pipe($.size());
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('fonts', function () {
|
|
|
+ return $.bowerFiles()
|
|
|
+ .pipe($.filter('**/*.{eot,svg,ttf,woff}'))
|
|
|
+ .pipe($.flatten())
|
|
|
+ .pipe(gulp.dest('dist/fonts'))
|
|
|
+ .pipe($.size());
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('extras', function () {
|
|
|
+ return gulp.src(['app/*.*', '!app/*.html'], { dot: true })
|
|
|
+ .pipe(gulp.dest('dist'));
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('clean', function () {
|
|
|
+ return gulp.src(['.tmp', 'dist'], { read: false }).pipe($.clean());
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('build', ['html', 'views', 'images', 'fonts', 'extras']);
|
|
|
+
|
|
|
+gulp.task('default', ['clean'], function () {
|
|
|
+ gulp.start('build');
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('connect', function () {
|
|
|
+ var connect = require('connect');
|
|
|
+ var app = connect()
|
|
|
+ .use(require('connect-livereload')({ port: 35729 }))
|
|
|
+ .use(connect.static('app'))
|
|
|
+ .use(connect.static('.tmp'))
|
|
|
+ .use(connect.directory('app'));
|
|
|
+
|
|
|
+ require('http').createServer(app)
|
|
|
+ .listen(9000)
|
|
|
+ .on('listening', function () {
|
|
|
+ console.log('Started connect web server on http://localhost:9000');
|
|
|
+ });
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('serve', ['connect'], function () {
|
|
|
+ require('opn')('http://localhost:9000');
|
|
|
+});
|
|
|
+
|
|
|
+// inject bower components
|
|
|
+gulp.task('wiredep', function () {
|
|
|
+ var wiredep = require('wiredep').stream;
|
|
|
+
|
|
|
+ gulp.src('app/*.html')
|
|
|
+ .pipe(wiredep({
|
|
|
+ directory: 'app/bower_components'
|
|
|
+ }))
|
|
|
+ .pipe(gulp.dest('app'));
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('watch', ['connect', 'serve'], function () {
|
|
|
+ var server = $.livereload();
|
|
|
+
|
|
|
+ // watch for changes
|
|
|
+
|
|
|
+ gulp.watch([
|
|
|
+ 'app/*.html',
|
|
|
+ '.tmp/styles/**/*.css',
|
|
|
+ 'app/scripts/**/*.js',
|
|
|
+ 'app/images/**/*'
|
|
|
+ ]).on('change', function (file) {
|
|
|
+ server.changed(file.path);
|
|
|
+ });
|
|
|
+
|
|
|
+ gulp.watch('app/styles/**/*.css', ['styles']);
|
|
|
+ gulp.watch('app/scripts/**/*.js', ['scripts']);
|
|
|
+ gulp.watch('app/images/**/*', ['images']);
|
|
|
+ gulp.watch('bower.json', ['wiredep']);
|
|
|
+});
|