Created
March 10, 2015 17:01
-
-
Save jasonswett/8cf24e97d361e14f5e4e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Generated on 2014-11-05 using generator-angular 0.9.8 | |
| 'use strict' | |
| # # Globbing | |
| # for performance reasons we're only matching one level down: | |
| # 'test/spec/{,*/}*.js' | |
| # use this if you want to recursively match all subfolders: | |
| # 'test/spec/**/*.js' | |
| module.exports = (grunt) -> | |
| # Load grunt tasks automatically | |
| require('load-grunt-tasks') grunt | |
| # Time how long tasks take. Can help when optimizing build times | |
| require('time-grunt') grunt | |
| # Configurable paths for the application | |
| appConfig = | |
| app: require('./bower.json').appPath or 'app' | |
| dist: '../public' | |
| modRewrite = require('connect-modrewrite') | |
| # Define the configuration for all the tasks | |
| grunt.initConfig | |
| yeoman: appConfig | |
| watch: | |
| bower: | |
| files: [ 'bower.json' ] | |
| tasks: [ 'wiredep' ] | |
| js: | |
| files: [ '<%= yeoman.app %>/scripts/{,*/}*.js' ] | |
| tasks: [ 'newer:jshint:all' ] | |
| options: livereload: '<%= connect.options.livereload %>' | |
| jade: | |
| files: ['<%= yeoman.app %>/**/*.jade'], | |
| tasks: ['jade'] | |
| coffee: | |
| files: [ '<%= yeoman.app %>/scripts/{,*/}*.{coffee,litcoffee,coffee.md}' ] | |
| tasks: [ 'newer:coffee:dist'] | |
| jsTest: | |
| files: [ 'test/spec/{,*/}*.js' ] | |
| tasks: [ | |
| 'newer:jshint:test' | |
| 'karma' | |
| ] | |
| compass: | |
| files: [ '<%= yeoman.app %>/styles/{,*/}*.{scss,sass}' ] | |
| tasks: [ | |
| 'compass:server' | |
| 'autoprefixer' | |
| ] | |
| gruntfile: files: [ 'Gruntfile.js' ] | |
| livereload: | |
| options: livereload: '<%= connect.options.livereload %>' | |
| files: [ | |
| '<%= yeoman.app %>/{,*/}*.html' | |
| '.tmp/styles/{,*/}*.css' | |
| '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' | |
| ] | |
| connect: | |
| options: | |
| port: 9000 | |
| hostname: 'localhost' | |
| livereload: 35729 | |
| proxies: [ { | |
| context: '/api' | |
| host: 'localhost' | |
| port: 3000 | |
| } ] | |
| livereload: options: | |
| open: true | |
| middleware: (connect, options) -> | |
| if !Array.isArray(options.base) | |
| options.base = [ options.base ] | |
| middlewares = [ | |
| modRewrite([ '!/api|/assets|\\..+$ /index.html' ]) | |
| require('grunt-connect-proxy/lib/utils').proxyRequest | |
| connect.static('.tmp') | |
| connect().use('/bower_components', connect.static('./bower_components')) | |
| connect.static(appConfig.app) | |
| ] | |
| # Make directory browse-able. | |
| directory = options.directory or options.base[options.base.length - 1] | |
| middlewares.push connect.directory(directory) | |
| middlewares | |
| test: options: | |
| port: 9001 | |
| middleware: (connect) -> | |
| [ | |
| connect.static('.tmp') | |
| connect.static('test') | |
| connect().use('/bower_components', connect.static('./bower_components')) | |
| connect.static(appConfig.app) | |
| ] | |
| dist: options: | |
| open: true | |
| base: '<%= yeoman.dist %>' | |
| jshint: | |
| options: | |
| jshintrc: '.jshintrc' | |
| reporter: require('jshint-stylish') | |
| all: src: [ | |
| 'Gruntfile.js' | |
| '<%= yeoman.app %>/scripts/{,*/}*.js' | |
| ] | |
| test: | |
| options: jshintrc: 'test/.jshintrc' | |
| src: [ 'test/spec/{,*/}*.js' ] | |
| clean: | |
| dist: files: [ { | |
| dot: true | |
| src: [ | |
| '.tmp' | |
| '<%= yeoman.dist %>/{,*/}*' | |
| '!<%= yeoman.dist %>/.git*' | |
| ] | |
| } ] | |
| server: '.tmp' | |
| autoprefixer: | |
| options: browsers: [ 'last 1 version' ] | |
| dist: files: [ { | |
| expand: true | |
| cwd: '.tmp/styles/' | |
| src: '{,*/}*.css' | |
| dest: '.tmp/styles/' | |
| } ] | |
| wiredep: | |
| app: | |
| src: [ '<%= yeoman.app %>/index.html' ] | |
| ignorePath: /\.\.\// | |
| sass: | |
| src: [ '<%= yeoman.app %>/styles/{,*/}*.{scss,sass}' ] | |
| ignorePath: /(\.\.\/){1,2}bower_components\// | |
| jade: | |
| dist: | |
| options: | |
| pretty: true | |
| data: | |
| debug: true | |
| files: [ | |
| expand: true | |
| cwd: '<%= yeoman.app %>' | |
| dest: '.tmp' | |
| src: '**/*.jade' | |
| ext: '.html' | |
| ] | |
| coffee: | |
| options: | |
| sourceMap: true | |
| bare: true | |
| sourceRoot: '' | |
| dist: | |
| files: [ | |
| expand: true | |
| cwd: '<%= yeoman.app %>/scripts' | |
| src: '{,*/}*.coffee' | |
| dest: '.tmp/scripts' | |
| ext: '.js' | |
| ] | |
| test: | |
| files: [ | |
| expand: true | |
| cwd: 'test/spec' | |
| src: '{,*/}*.coffee' | |
| dest: '.tmp/spec' | |
| ext: '.js' | |
| ] | |
| compass: | |
| options: | |
| sassDir: '<%= yeoman.app %>/styles' | |
| cssDir: '.tmp/styles' | |
| generatedImagesDir: '.tmp/images/generated' | |
| imagesDir: '<%= yeoman.app %>/images' | |
| javascriptsDir: '<%= yeoman.app %>/scripts' | |
| fontsDir: '<%= yeoman.app %>/styles/fonts' | |
| importPath: './bower_components' | |
| httpImagesPath: '/images' | |
| httpGeneratedImagesPath: '/images/generated' | |
| httpFontsPath: '/styles/fonts' | |
| relativeAssets: false | |
| assetCacheBuster: false | |
| raw: 'Sass::Script::Number.precision = 10\n' | |
| dist: options: generatedImagesDir: '<%= yeoman.dist %>/images/generated' | |
| server: options: debugInfo: true | |
| filerev: dist: src: [ | |
| '<%= yeoman.dist %>/scripts/{,*/}*.js' | |
| '<%= yeoman.dist %>/styles/{,*/}*.css' | |
| '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' | |
| '<%= yeoman.dist %>/styles/fonts/*' | |
| ] | |
| useminPrepare: | |
| html: '<%= yeoman.app %>/index.html' | |
| options: | |
| dest: '<%= yeoman.dist %>' | |
| flow: html: | |
| steps: | |
| js: [ | |
| 'concat' | |
| 'uglifyjs' | |
| ] | |
| css: [ 'cssmin' ] | |
| post: {} | |
| usemin: | |
| html: [ '<%= yeoman.dist %>/{,*/}*.html' ] | |
| css: [ '<%= yeoman.dist %>/styles/{,*/}*.css' ] | |
| options: assetsDirs: [ | |
| '<%= yeoman.dist %>' | |
| '<%= yeoman.dist %>/images' | |
| ] | |
| imagemin: dist: files: [ { | |
| expand: true | |
| cwd: '<%= yeoman.app %>/images' | |
| src: '{,*/}*.{png,jpg,jpeg,gif}' | |
| dest: '<%= yeoman.dist %>/images' | |
| } ] | |
| svgmin: dist: files: [ { | |
| expand: true | |
| cwd: '<%= yeoman.app %>/images' | |
| src: '{,*/}*.svg' | |
| dest: '<%= yeoman.dist %>/images' | |
| } ] | |
| htmlmin: dist: | |
| options: | |
| collapseWhitespace: true | |
| conservativeCollapse: true | |
| collapseBooleanAttributes: true | |
| removeCommentsFromCDATA: true | |
| removeOptionalTags: true | |
| files: [ { | |
| expand: true | |
| cwd: '<%= yeoman.dist %>' | |
| src: [ | |
| '*.html' | |
| 'views/{,*/}*.html' | |
| ] | |
| dest: '<%= yeoman.dist %>' | |
| } ] | |
| ngAnnotate: dist: files: [ { | |
| expand: true | |
| cwd: '.tmp/concat/scripts' | |
| src: [ | |
| '*.js' | |
| '!oldieshim.js' | |
| ] | |
| dest: '.tmp/concat/scripts' | |
| } ] | |
| cdnify: dist: html: [ '<%= yeoman.dist %>/*.html' ] | |
| copy: | |
| dist: files: [ | |
| { | |
| expand: true | |
| dot: true | |
| cwd: '<%= yeoman.app %>' | |
| dest: '<%= yeoman.dist %>' | |
| src: [ | |
| '*.{ico,png,txt}' | |
| '.htaccess' | |
| '*.html' | |
| 'views/{,*/}*.html' | |
| 'images/{,*/}*.{webp}' | |
| 'fonts/*' | |
| ] | |
| } | |
| { | |
| expand: true | |
| cwd: '.tmp/images' | |
| dest: '<%= yeoman.dist %>/images' | |
| src: [ 'generated/*' ] | |
| } | |
| { | |
| expand: true | |
| cwd: '.' | |
| src: 'bower_components/bootstrap-sass-official/assets/fonts/bootstrap/*' | |
| dest: '<%= yeoman.dist %>' | |
| } | |
| ] | |
| styles: | |
| expand: true | |
| cwd: '<%= yeoman.app %>/styles' | |
| dest: '.tmp/styles/' | |
| src: '{,*/}*.css' | |
| concurrent: | |
| server: [ | |
| 'jade:dist' | |
| 'coffee:dist' | |
| 'compass:server' | |
| ] | |
| test: [ 'compass' ] | |
| dist: [ | |
| 'jade' | |
| 'coffee' | |
| 'compass:dist' | |
| 'imagemin' | |
| 'svgmin' | |
| ] | |
| karma: unit: | |
| configFile: 'test/karma.conf.js' | |
| singleRun: true | |
| grunt.registerTask 'serve', 'Compile then start a connect web server', (target) -> | |
| if target == 'dist' | |
| return grunt.task.run([ | |
| 'build' | |
| 'connect:dist:keepalive' | |
| ]) | |
| grunt.task.run [ | |
| 'clean:server' | |
| 'wiredep' | |
| 'railsServer:development' | |
| 'concurrent:server' | |
| 'autoprefixer' | |
| 'configureProxies' | |
| 'connect:livereload' | |
| 'watch' | |
| ] | |
| return | |
| grunt.registerTask 'server', 'DEPRECATED TASK. Use the "serve" task instead', (target) -> | |
| grunt.log.warn 'The `server` task has been deprecated. Use `grunt serve` to start a server.' | |
| grunt.task.run [ 'serve:' + target ] | |
| return | |
| grunt.registerTask 'test', [ | |
| 'clean:server' | |
| 'concurrent:test' | |
| 'autoprefixer' | |
| 'connect:test' | |
| 'karma' | |
| ] | |
| grunt.registerTask 'build', [ | |
| 'clean:dist' | |
| 'jade' | |
| 'coffee' | |
| 'wiredep' | |
| 'useminPrepare' | |
| 'concurrent:dist' | |
| 'autoprefixer' | |
| 'concat' | |
| 'ngAnnotate' | |
| 'copy:dist' | |
| 'cdnify' | |
| 'cssmin' | |
| 'uglify' | |
| 'filerev' | |
| 'usemin' | |
| 'htmlmin' | |
| ] | |
| grunt.registerTask 'default', [ | |
| 'newer:jshint' | |
| 'test' | |
| 'build' | |
| ] | |
| grunt.registerTask 'heroku:production', 'build' | |
| grunt.loadNpmTasks 'grunt-contrib-jade' | |
| grunt.loadNpmTasks 'grunt-contrib-coffee' | |
| grunt.loadNpmTasks 'grunt-connect-proxy' | |
| grunt.loadNpmTasks 'grunt-rails-server' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment