Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- // Generated on 2016-01-08 using generator-angular 0.15.1
- 'use strict';
- var gulp = require('gulp');
- var $ = require('gulp-load-plugins')();
- var openURL = require('open');
- var lazypipe = require('lazypipe');
- var rimraf = require('rimraf');
- var wiredep = require('wiredep').stream;
- var runSequence = require('run-sequence');
- var yeoman = {
- app: require('./bower.json').appPath || 'app',
- dist: 'dist'
- };
- var paths = {
- scripts: [yeoman.app + '/scripts/**/*.js'],
- styles: [yeoman.app + '/styles/**/*.css'],
- test: ['test/spec/**/*.js'],
- testRequire: [
- yeoman.app + '/bower_components/angular/angular.js',
- yeoman.app + '/bower_components/angular-mocks/angular-mocks.js',
- yeoman.app + '/bower_components/angular-resource/angular-resource.js',
- yeoman.app + '/bower_components/angular-cookies/angular-cookies.js',
- yeoman.app + '/bower_components/angular-sanitize/angular-sanitize.js',
- yeoman.app + '/bower_components/angular-route/angular-route.js',
- 'test/mock/**/*.js',
- 'test/spec/**/*.js'
- ],
- karma: 'karma.conf.js',
- views: {
- main: yeoman.app + '/index.html',
- files: [yeoman.app + '/views/**/*.html']
- }
- };
- ////////////////////////
- // Reusable pipelines //
- ////////////////////////
- var lintScripts = lazypipe()
- .pipe($.jshint, '.jshintrc')
- .pipe($.jshint.reporter, 'jshint-stylish');
- var styles = lazypipe()
- .pipe($.autoprefixer, 'last 1 version')
- .pipe(gulp.dest, '.tmp/styles');
- ///////////
- // Tasks //
- ///////////
- gulp.task('styles', function () {
- return gulp.src(paths.styles)
- .pipe(styles());
- });
- gulp.task('lint:scripts', function () {
- return gulp.src(paths.scripts)
- .pipe(lintScripts());
- });
- gulp.task('clean:tmp', function (cb) {
- rimraf('./.tmp', cb);
- });
- gulp.task('start:client', ['start:server', 'styles'], function () {
- openURL('http://localhost:9000');
- });
- gulp.task('start:server', function() {
- $.connect.server({
- root: [yeoman.app, 'bower_components','.tmp'],
- livereload: true,
- // Change this to '0.0.0.0' to access the server from outside.
- port: 9000
- });
- });
- gulp.task('start:server:test', function() {
- $.connect.server({
- root: ['test', yeoman.app, '.tmp'],
- livereload: true,
- port: 9001
- });
- });
- gulp.task('watch', function () {
- $.watch(paths.styles)
- .pipe($.plumber())
- .pipe(styles())
- .pipe($.connect.reload());
- $.watch(paths.views.files)
- .pipe($.plumber())
- .pipe($.connect.reload());
- $.watch(paths.scripts)
- .pipe($.plumber())
- .pipe(lintScripts())
- .pipe($.connect.reload());
- $.watch(paths.test)
- .pipe($.plumber())
- .pipe(lintScripts());
- gulp.watch('bower.json', ['bower']);
- });
- gulp.task('serve', function (cb) {
- runSequence('clean:tmp',
- ['lint:scripts'],
- ['start:client'],
- 'watch', cb);
- });
- gulp.task('serve:prod', function() {
- $.connect.server({
- root: [yeoman.dist],
- livereload: true,
- port: 9000
- });
- });
- gulp.task('test', ['start:server:test'], function () {
- var testToFiles = paths.testRequire.concat(paths.scripts, paths.test);
- return gulp.src(testToFiles)
- .pipe($.karma({
- configFile: paths.karma,
- action: 'watch'
- }));
- });
- // inject bower components
- gulp.task('bower', function () {
- return gulp.src(paths.views.main)
- .pipe(wiredep({
- directory: 'bower_components',
- ignorePath: '..'
- }))
- .pipe(gulp.dest(yeoman.app + '/views'));
- });
- ///////////
- // Build //
- ///////////
- gulp.task('clean:dist', function (cb) {
- rimraf('./dist', cb);
- });
- gulp.task('client:build', ['html', 'styles'], function () {
- var jsFilter = $.filter('**/*.js');
- var cssFilter = $.filter('**/*.css');
- return gulp.src(paths.views.main)
- .pipe($.useref({searchPath: [yeoman.app, '.tmp']}))
- .pipe(jsFilter)
- .pipe($.ngAnnotate())
- .pipe($.uglify())
- .pipe(jsFilter.restore())
- .pipe(cssFilter)
- .pipe($.minifyCss({cache: true}))
- .pipe(cssFilter.restore())
- .pipe($.rev())
- .pipe($.revReplace())
- .pipe(gulp.dest(yeoman.dist));
- });
- gulp.task('html', function () {
- return gulp.src(yeoman.app + '/views/**/*')
- .pipe(gulp.dest(yeoman.dist + '/views'));
- });
- gulp.task('images', function () {
- return gulp.src(yeoman.app + '/images/**/*')
- .pipe($.cache($.imagemin({
- optimizationLevel: 5,
- progressive: true,
- interlaced: true
- })))
- .pipe(gulp.dest(yeoman.dist + '/images'));
- });
- gulp.task('copy:extras', function () {
- return gulp.src(yeoman.app + '/*/.*', { dot: true })
- .pipe(gulp.dest(yeoman.dist));
- });
- gulp.task('copy:fonts', function () {
- return gulp.src(yeoman.app + '/fonts/**/*')
- .pipe(gulp.dest(yeoman.dist + '/fonts'));
- });
- gulp.task('build', ['clean:dist'], function () {
- runSequence(['images', 'copy:extras', 'copy:fonts', 'client:build']);
- });
- gulp.task('default', ['build']);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.


