virt2/api/jquery/plugins/owl.carousel/OwlCarousel2-2.3.4/Gruntfile.js

321 lines
6.9 KiB
JavaScript
Executable File

/**
* Owl Carousel
*
* Bartosz Wojciechowski
*
* Copyright (c) 2014
* Licensed under the MIT license.
*/
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt);
grunt
.initConfig({
pkg: grunt.file.readJSON('package.json'),
app: grunt.file.readJSON('_config.json'),
banner: '/**\n' + ' * Owl Carousel v<%= pkg.version %>\n'
+ ' * Copyright 2013-<%= grunt.template.today("yyyy") %> <%= pkg.author.name %>\n'
+ ' * Licensed under: <%= pkg.license %>\n' + ' */\n',
// assemble
assemble: {
options: {
flatten: false,
expand: true,
production: false,
assets: '<%= app.docs.dest %>/assets',
postprocess: require('pretty'),
// metadata
pkg: '<%= pkg %>',
app: '<%= app %>',
data: [ '<%= app.docs.src %>/data/*.{json,yml}' ],
// templates
partials: '<%= app.docs.templates %>/partials/*.hbs',
layoutdir: '<%= app.docs.layouts %>/',
// extensions
helpers: '<%= app.docs.src %>/helpers/*.js'
},
index: {
options: {
layout: 'home.hbs'
},
files: [ {
expand: true,
cwd: '<%= app.docs.pages %>/',
src: '*.hbs',
dest: '<%= app.docs.dest %>/'
} ]
},
demos: {
options: {
layout: 'demos.hbs'
},
files: [ {
expand: true,
cwd: '<%= app.docs.pages %>/demos/',
src: '*.hbs',
dest: '<%= app.docs.dest %>/demos'
} ]
},
docs: {
options: {
layout: 'docs.hbs'
},
files: [ {
expand: true,
cwd: '<%= app.docs.pages %>/docs/',
src: '*.hbs',
dest: '<%= app.docs.dest %>/docs'
} ]
}
},
// clean
clean: {
docs: [ '<%= app.docs.dest %>' ],
dist: [ 'dist' ]
},
// sass
sass: {
docs: {
options: {
outputStyle: 'compressed',
includePaths: [ '<%= app.docs.src %>/assets/scss/', 'node_modules/foundation-sites/scss' ]
},
files: {
'<%= app.docs.dest %>/assets/css/docs.theme.min.css': '<%= app.docs.src %>/assets/scss/docs.theme.scss'
}
},
dist: {
options: {
outputStyle: 'nested'
},
files: {
'dist/assets/<%= pkg.name %>.css': 'src/scss/<%= pkg.name %>.scss',
'dist/assets/owl.theme.default.css': 'src/scss/owl.theme.default.scss',
'dist/assets/owl.theme.green.css': 'src/scss/owl.theme.green.scss'
}
}
},
autoprefixer: {
options: {
browsers: [ 'last 2 versions', 'ie 7', 'ie 8', 'ie 9', 'ie 10', 'ie 11' ]
},
dist: {
files: {
'dist/assets/<%= pkg.name %>.css': 'dist/assets/<%= pkg.name %>.css',
'dist/assets/owl.theme.default.css': 'dist/assets/owl.theme.default.css',
'dist/assets/owl.theme.green.css': 'dist/assets/owl.theme.green.css'
}
}
},
concat: {
dist: {
files: {
'dist/<%= pkg.name %>.js': '<%= app.src.scripts %>'
}
}
},
cssmin: {
dist: {
files: {
'dist/assets/<%= pkg.name %>.min.css': 'dist/assets/<%= pkg.name %>.css',
'dist/assets/owl.theme.default.min.css': 'dist/assets/owl.theme.default.css',
'dist/assets/owl.theme.green.min.css': 'dist/assets/owl.theme.green.css'
}
}
},
jshint: {
options: {
jshintrc: 'src/js/.jshintrc'
},
dist: {
src: [ '<%= app.src.scripts %>', 'Gruntfile.js' ]
}
},
qunit: {
options: {
timeout: 10000
},
dist: [ 'test/index.html' ]
},
jscs: {
options: {
config: 'src/js/.jscsrc',
reporter: 'text.js',
reporterOutput: 'jscs.report.txt'
},
dist: {
src: [ '<%= app.src.scripts %>', 'Gruntfile.js' ]
}
},
usebanner: {
dist: {
options: {
banner: '<%= banner %>',
linebreak: false
},
files: {
src: [
'dist/<%= pkg.name %>.js',
'dist/assets/*.css'
]
}
}
},
uglify: {
options: {
banner: '<%= banner %>'
},
dist: {
files: {
'dist/<%= pkg.name %>.min.js': 'dist/<%= pkg.name %>.js'
}
}
},
// copy
copy: {
distImages: {
expand: true,
flatten: true,
cwd: 'src/',
src: [ 'img/*.*' ],
dest: 'dist/assets'
},
distToDocs: {
expand: true,
cwd: 'dist/',
src: [ '**/*.*' ],
dest: '<%= app.docs.dest %>/assets/owlcarousel'
},
srcToDocs: {
expand: true,
cwd: 'src/js',
src: [ '**/*.js' ],
dest: '<%= app.docs.dest %>/assets/owlcarousel/src'
},
docsAssets: {
expand: true,
cwd: '<%= app.docs.src %>/assets/',
src: [ 'css/*.css', 'vendors/*.js', 'vendors/*.map', 'img/*.*', 'js/*.*' ],
dest: '<%= app.docs.dest %>/assets/'
},
readme: {
files: [ {
'dist/LICENSE': 'LICENSE',
'dist/README.md': 'README.md'
} ]
}
},
// connect
connect: {
options: {
port: 9600,
open: true,
livereload: true,
hostname: 'localhost'
},
docs: {
options: {
base: "<%= app.docs.dest %>"
}
}
},
// watch
watch: {
options: {
livereload: true
},
templatesDocs: {
files: [ '<%= app.docs.templates %>/**/*.hbs' ],
tasks: [ 'assemble' ]
},
sassDocs: {
files: [ '<%= app.docs.src %>/assets/**/*.scss' ],
tasks: [ 'sass:docs' ]
},
sass: {
files: [ 'src/**/*.scss' ],
tasks: [ 'sass:dist', 'cssmin:dist', 'usebanner:dist', 'copy:distToDocs' ]
},
jsDocs: {
files: [ '<%= app.docs.src %>/assets/**/*.js' ],
tasks: [ 'copy:docsAssets' ]
},
js: {
files: [ 'src/**/*.js' ],
tasks: [ 'jscs:dist', 'jshint:dist', 'qunit:dist', 'concat:dist', 'uglify:dist', 'usebanner:dist', 'copy:distToDocs', 'copy:srcToDocs' ]
},
helpersDocs: {
files: [ '<%= app.docs.src %>/helpers/*.js' ],
tasks: [ 'assemble' ]
},
test: {
files: [ 'test/*.html', 'test/unit/*.js' ],
tasks: [ 'qunit:dist' ]
}
},
// compress zip
compress: {
zip: {
options: {
archive: 'docs/download/owl.carousel.<%= pkg.version %>.zip'
},
files: [ {
expand: true,
cwd: 'dist/',
src: [ '**' ],
dest: 'owl.carousel.<%= pkg.version %>'
} ]
}
},
// publish to github pages
'gh-pages': {
options: {
base: 'docs'
},
src: '**/*'
}
});
grunt.loadNpmTasks('assemble');
// tasks
grunt.registerTask('dist', [ 'clean:dist', 'sass:dist', 'autoprefixer', 'concat:dist', 'cssmin:dist', 'copy:distImages', 'usebanner:dist', 'uglify:dist', 'copy:readme' ]);
grunt.registerTask('docs', [ 'dist', 'clean:docs', 'assemble', 'sass:docs', 'copy:docsAssets', 'copy:distToDocs', 'zip' ]);
grunt.registerTask('test', [ 'jshint:dist', 'qunit:dist', 'jscs:dist' ]);
grunt.registerTask('default', [ 'dist', 'docs', 'test' ]);
grunt.registerTask('serve', [ 'connect:docs', 'watch' ]);
grunt.registerTask('zip', [ 'compress' ]);
grunt.registerTask('deploy', [ 'docs', 'gh-pages' ]);
};