mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
356 lines
11 KiB
JavaScript
356 lines
11 KiB
JavaScript
// Generated on 2013-10-07 using generator-webapp 0.4.3
|
|
'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 = function (grunt) {
|
|
// show elapsed time at the end
|
|
require('time-grunt')(grunt);
|
|
// load all grunt tasks
|
|
require('load-grunt-tasks')(grunt);
|
|
|
|
grunt.initConfig({
|
|
// configurable paths
|
|
uglify: {
|
|
options: {
|
|
mangle: false
|
|
},
|
|
},
|
|
yeoman: {
|
|
app: 'app',
|
|
dist: 'dist'
|
|
},
|
|
watch: {
|
|
compass: {
|
|
files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
|
|
tasks: ['compass:server', 'autoprefixer']
|
|
},
|
|
styles: {
|
|
files: ['<%= yeoman.app %>/styles/{,*/}*.css'],
|
|
tasks: ['copy:styles', 'autoprefixer']
|
|
},
|
|
livereload: {
|
|
options: {
|
|
livereload: '<%= connect.options.livereload %>'
|
|
},
|
|
files: [
|
|
'<%= yeoman.app %>/*.html',
|
|
'.tmp/styles/{,*/}*.css',
|
|
'{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js',
|
|
'<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
|
|
]
|
|
}
|
|
},
|
|
connect: {
|
|
options: {
|
|
port: 9000,
|
|
livereload: 35729,
|
|
// change this to '0.0.0.0' to access the server from outside
|
|
hostname: 'localhost'
|
|
},
|
|
livereload: {
|
|
options: {
|
|
open: true,
|
|
base: [
|
|
'.tmp',
|
|
'<%= yeoman.app %>'
|
|
]
|
|
}
|
|
},
|
|
test: {
|
|
options: {
|
|
base: [
|
|
'.tmp',
|
|
'test',
|
|
'<%= yeoman.app %>'
|
|
]
|
|
}
|
|
},
|
|
dist: {
|
|
options: {
|
|
open: true,
|
|
base: '<%= yeoman.dist %>'
|
|
}
|
|
}
|
|
},
|
|
clean: {
|
|
dist: {
|
|
files: [{
|
|
dot: true,
|
|
src: [
|
|
'.tmp',
|
|
'<%= yeoman.dist %>/*',
|
|
'!<%= yeoman.dist %>/.git*'
|
|
]
|
|
}]
|
|
},
|
|
server: '.tmp'
|
|
},
|
|
jshint: {
|
|
options: {
|
|
jshintrc: '.jshintrc'
|
|
},
|
|
all: [
|
|
'<%= yeoman.app %>/scripts/{,*/}*.js',
|
|
'!<%= yeoman.app %>/scripts/vendor/*',
|
|
]
|
|
},
|
|
mocha: {
|
|
all: {
|
|
options: {
|
|
run: true,
|
|
urls: ['http://<%= connect.test.options.hostname %>:<%= connect.test.options.port %>/index.html']
|
|
}
|
|
}
|
|
},
|
|
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: '<%= yeoman.app %>/bower_components',
|
|
httpImagesPath: '/images',
|
|
httpGeneratedImagesPath: '/images/generated',
|
|
httpFontsPath: '/styles/fonts',
|
|
relativeAssets: false,
|
|
assetCacheBuster: false
|
|
},
|
|
dist: {
|
|
options: {
|
|
generatedImagesDir: '<%= yeoman.dist %>/images/generated'
|
|
}
|
|
},
|
|
server: {
|
|
options: {
|
|
debugInfo: true
|
|
}
|
|
}
|
|
},
|
|
autoprefixer: {
|
|
options: {
|
|
browsers: ['last 1 version']
|
|
},
|
|
dist: {
|
|
files: [{
|
|
expand: true,
|
|
cwd: '.tmp/styles/',
|
|
src: '{,*/}*.css',
|
|
dest: '.tmp/styles/'
|
|
}]
|
|
}
|
|
},
|
|
// not used since Uglify task does concat,
|
|
// but still available if needed
|
|
/*concat: {
|
|
dist: {}
|
|
},*/
|
|
requirejs: {
|
|
dist: {
|
|
// Options: https://github.com/jrburke/r.js/blob/master/build/example.build.js
|
|
options: {
|
|
// `name` and `out` is set by grunt-usemin
|
|
baseUrl: '<%= yeoman.app %>/scripts',
|
|
optimize: 'none',
|
|
// TODO: Figure out how to make sourcemaps work with grunt-usemin
|
|
// https://github.com/yeoman/grunt-usemin/issues/30
|
|
//generateSourceMaps: true,
|
|
// required to support SourceMaps
|
|
// http://requirejs.org/docs/errors.html#sourcemapcomments
|
|
preserveLicenseComments: false,
|
|
useStrict: true,
|
|
wrap: true
|
|
//uglify2: {} // https://github.com/mishoo/UglifyJS2
|
|
}
|
|
}
|
|
},
|
|
useminPrepare: {
|
|
options: {
|
|
dest: '<%= yeoman.dist %>'
|
|
},
|
|
html: ['<%= yeoman.app %>/index.html']
|
|
},
|
|
usemin: {
|
|
options: {
|
|
dirs: ['<%= yeoman.dist %>']
|
|
},
|
|
html: ['<%= yeoman.dist %>/{,*/}*.html'],
|
|
css: ['<%= yeoman.dist %>/styles/{,*/}*.css']
|
|
},
|
|
imagemin: {
|
|
dist: {
|
|
files: [{
|
|
expand: true,
|
|
cwd: '<%= yeoman.app %>/images',
|
|
src: '{,*/}*.{png,jpg,jpeg}',
|
|
dest: '<%= yeoman.dist %>/images'
|
|
}]
|
|
}
|
|
},
|
|
svgmin: {
|
|
dist: {
|
|
files: [{
|
|
expand: true,
|
|
cwd: '<%= yeoman.app %>/images',
|
|
src: '{,*/}*.svg',
|
|
dest: '<%= yeoman.dist %>/images'
|
|
}]
|
|
}
|
|
},
|
|
cssmin: {
|
|
// This task is pre-configured if you do not wish to use Usemin
|
|
// blocks for your CSS. By default, the Usemin block from your
|
|
// `index.html` will take care of minification, e.g.
|
|
//
|
|
// <!-- build:css({.tmp,app}) styles/main.css -->
|
|
//
|
|
// dist: {
|
|
// files: {
|
|
// '<%= yeoman.dist %>/styles/main.css': [
|
|
// '.tmp/styles/{,*/}*.css',
|
|
// '<%= yeoman.app %>/styles/{,*/}*.css'
|
|
// ]
|
|
// }
|
|
// }
|
|
},
|
|
htmlmin: {
|
|
dist: {
|
|
options: {
|
|
/*removeCommentsFromCDATA: true,
|
|
// https://github.com/yeoman/grunt-usemin/issues/44
|
|
//collapseWhitespace: true,
|
|
collapseBooleanAttributes: true,
|
|
removeAttributeQuotes: true,
|
|
removeRedundantAttributes: true,
|
|
useShortDoctype: true,
|
|
removeEmptyAttributes: true,
|
|
removeOptionalTags: true*/
|
|
},
|
|
files: [{
|
|
expand: true,
|
|
cwd: '<%= yeoman.app %>',
|
|
src: '*.html',
|
|
dest: '<%= yeoman.dist %>'
|
|
}]
|
|
}
|
|
},
|
|
|
|
ngmin: {
|
|
dist: {
|
|
src: '.tmp/concat/scripts/app.js',
|
|
dest: '.tmp/concat/scripts/app.js'
|
|
}
|
|
},
|
|
|
|
// Put files not handled in other tasks here
|
|
copy: {
|
|
dist: {
|
|
files: [{
|
|
expand: true,
|
|
dot: true,
|
|
cwd: '<%= yeoman.app %>',
|
|
dest: '<%= yeoman.dist %>',
|
|
src: [
|
|
'*.{ico,png,txt}',
|
|
'.htaccess',
|
|
'images/{,*/}*.{webp,gif,svg}',
|
|
'styles/fonts/{,*/}*.*',
|
|
'views/*.*',
|
|
//'index.html',
|
|
'bower_components/sass-bootstrap/fonts/*.*'
|
|
]
|
|
}]
|
|
},
|
|
styles: {
|
|
expand: true,
|
|
dot: true,
|
|
cwd: '<%= yeoman.app %>/styles',
|
|
dest: '.tmp/styles/',
|
|
src: '{,*/}*.css'
|
|
}
|
|
},
|
|
modernizr: {
|
|
devFile: '<%= yeoman.app %>/bower_components/modernizr/modernizr.js',
|
|
outputFile: '<%= yeoman.dist %>/bower_components/modernizr/modernizr.js',
|
|
files: [
|
|
'<%= yeoman.dist %>/scripts/{,*/}*.js',
|
|
'<%= yeoman.dist %>/styles/{,*/}*.css',
|
|
'!<%= yeoman.dist %>/scripts/vendor/*'
|
|
],
|
|
uglify: true
|
|
},
|
|
concurrent: {
|
|
server: [
|
|
'compass',
|
|
'copy:styles'
|
|
],
|
|
test: [
|
|
'copy:styles'
|
|
],
|
|
dist: [
|
|
//'compass',
|
|
'copy:styles',
|
|
'imagemin',
|
|
'svgmin',
|
|
'htmlmin'
|
|
]
|
|
},
|
|
bower: {
|
|
options: {
|
|
exclude: ['modernizr']
|
|
},
|
|
all: {
|
|
rjsConfig: '<%= yeoman.app %>/scripts/main.js'
|
|
}
|
|
}
|
|
});
|
|
|
|
grunt.registerTask('server', function (target) {
|
|
if (target === 'dist') {
|
|
return grunt.task.run(['build', 'connect:dist:keepalive']);
|
|
}
|
|
|
|
grunt.task.run([
|
|
'clean:server',
|
|
'concurrent:server',
|
|
'autoprefixer',
|
|
'connect:livereload',
|
|
'watch'
|
|
]);
|
|
});
|
|
|
|
grunt.registerTask('test', [
|
|
'clean:server',
|
|
'concurrent:test',
|
|
'autoprefixer',
|
|
'connect:test',
|
|
'mocha'
|
|
]);
|
|
|
|
grunt.registerTask('build', [
|
|
'clean:dist',
|
|
'jshint',
|
|
'useminPrepare',
|
|
'concurrent:dist',
|
|
'autoprefixer',
|
|
'concat',
|
|
'cssmin',
|
|
'ngmin',
|
|
'usemin',
|
|
'uglify',
|
|
'copy:dist'
|
|
]);
|
|
|
|
grunt.registerTask('default', [
|
|
'jshint',
|
|
'test',
|
|
'build'
|
|
]);
|
|
};
|