Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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'
- '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'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement