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