You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
320 lines
6.9 KiB
320 lines
6.9 KiB
/** |
|
* 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' ]); |
|
|
|
};
|
|
|