You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
236 lines
6.5 KiB
JavaScript
236 lines
6.5 KiB
JavaScript
module.exports = function (grunt) {
|
|
'use strict';
|
|
|
|
// Project configuration.
|
|
grunt.initConfig({
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
|
|
clean: {
|
|
build: ['staging', 'build']
|
|
},
|
|
|
|
usebanner: {
|
|
dist: {
|
|
options: {
|
|
position: 'top',
|
|
banner: '/**\n' +
|
|
' * <%= pkg.name %> <%= pkg.version %> <%= pkg.homepage %>\n' +
|
|
' * <%= pkg.description %>\n' +
|
|
' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %> \n' +
|
|
' * Licensed under <%= pkg.licenses[0].type %> <<%= pkg.licenses[0].url %>>*/\n',
|
|
linebreak: false
|
|
},
|
|
files: {
|
|
src: ['build/**/*.css']
|
|
}
|
|
}
|
|
},
|
|
|
|
less: {
|
|
options: {
|
|
paths: ['./src/less'],
|
|
compress: false,
|
|
},
|
|
compile: {
|
|
expand: true,
|
|
cwd: 'src/less',
|
|
src: ['**/*.less'],
|
|
ext: '.css',
|
|
dest: 'staging'
|
|
}
|
|
},
|
|
|
|
postcss: {
|
|
options: {
|
|
map: false,
|
|
processors: [
|
|
require('autoprefixer')(),
|
|
]
|
|
},
|
|
build: {
|
|
expand: true,
|
|
cwd: 'staging/',
|
|
dest: 'staging/',
|
|
src: ['**/*.css'],
|
|
},
|
|
},
|
|
|
|
rtlcss: {
|
|
prefixRules: {
|
|
options: {
|
|
rules: [
|
|
{
|
|
'name': 'prefix',
|
|
'expr': /.*/img,
|
|
'important': true,
|
|
'action': function (rule) {
|
|
//prefix rules with ajs- and ignore further processing
|
|
rule.selector = rule.selector.replace(/\.(?!alertify)/g, '.ajs-');
|
|
return true;
|
|
}
|
|
}
|
|
]
|
|
},
|
|
expand: true,
|
|
cwd: 'staging',
|
|
src: ['**/*.css'],
|
|
dest: 'staging',
|
|
},
|
|
build: {
|
|
expand : true,
|
|
cwd: 'staging',
|
|
src: ['**/*.css'],
|
|
dest: 'staging/rtl',
|
|
ext: '.css',
|
|
}
|
|
},
|
|
|
|
cssmin: {
|
|
options: {
|
|
report: 'gzip'
|
|
},
|
|
min: {
|
|
expand:true,
|
|
cwd:'staging',
|
|
src:['*.css', 'themes/*.css'],
|
|
dest:'build/css',
|
|
ext: '.min.css',
|
|
},
|
|
rtl: {
|
|
expand:true,
|
|
cwd:'staging/rtl',
|
|
src:['**/*.css'],
|
|
dest:'build/css',
|
|
ext: '.rtl.min.css',
|
|
}
|
|
},
|
|
|
|
copy: {
|
|
ltr:{
|
|
expand:true,
|
|
cwd:'staging',
|
|
src:['*.css', 'themes/*.css'],
|
|
dest:'build/css',
|
|
ext:'.css'
|
|
},
|
|
rtl:{
|
|
expand:true,
|
|
cwd:'staging/rtl',
|
|
src:['**/*.css'],
|
|
dest:'build/css',
|
|
ext:'.rtl.css'
|
|
},
|
|
build:{
|
|
expand:true,
|
|
cwd:'build',
|
|
src:['**'],
|
|
dest:'docpad/files/build'
|
|
}
|
|
},
|
|
|
|
concat: {
|
|
options: {
|
|
stripBanners: false,
|
|
banner: '/**\n' +
|
|
' * <%= pkg.name %> <%= pkg.version %> <%= pkg.homepage %>\n' +
|
|
' * <%= pkg.description %>\n' +
|
|
' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %> \n' +
|
|
' * Licensed under <%= pkg.licenses[0].type %> <<%= pkg.licenses[0].url %>>*/\n',
|
|
},
|
|
dist: {
|
|
src: [
|
|
'src/js/intro.js',
|
|
'src/js/event.js',
|
|
|
|
'src/js/dialog/intro.js',
|
|
'src/js/dialog/commands.js',
|
|
'src/js/dialog/actions.js',
|
|
'src/js/dialog/focus.js',
|
|
'src/js/dialog/transition.js',
|
|
'src/js/dialog/move.js',
|
|
'src/js/dialog/resize.js',
|
|
'src/js/dialog/events.js',
|
|
'src/js/dialog/dialog.js',
|
|
'src/js/dialog/outro.js',
|
|
|
|
'src/js/notifier.js',
|
|
'src/js/alertify.js',
|
|
'src/js/alert.js',
|
|
'src/js/confirm.js',
|
|
'src/js/prompt.js',
|
|
'src/js/outro.js'
|
|
],
|
|
dest: 'build/alertify.js'
|
|
}
|
|
},
|
|
|
|
|
|
jshint: {
|
|
files: {
|
|
src: [
|
|
'Gruntfile.js',
|
|
'build/alertify.js',
|
|
'test/specs/*.js'
|
|
]
|
|
},
|
|
options: {
|
|
jshintrc: '.jshintrc'
|
|
}
|
|
},
|
|
|
|
uglify: {
|
|
options: {
|
|
banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
|
|
'<%= pkg.author %> */\n',
|
|
report: 'gzip'
|
|
},
|
|
dist: {
|
|
files: {
|
|
'build/alertify.min.js': ['<banner>', 'build/alertify.js']
|
|
}
|
|
}
|
|
},
|
|
|
|
watch: {
|
|
src: {
|
|
files: ['src/**/*.js'],
|
|
tasks: ['build']
|
|
}
|
|
},
|
|
|
|
compress: {
|
|
options: {
|
|
archive: 'build/alertifyjs.zip'
|
|
},
|
|
build: {
|
|
files: [
|
|
{
|
|
expand:true,
|
|
cwd: 'build',
|
|
src: ['**']
|
|
}
|
|
]
|
|
}
|
|
}
|
|
});
|
|
|
|
grunt.loadNpmTasks('grunt-rtlcss');
|
|
grunt.loadNpmTasks('grunt-postcss');
|
|
grunt.loadNpmTasks('grunt-contrib-less');
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-connect');
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
grunt.loadNpmTasks('grunt-contrib-compress');
|
|
grunt.loadNpmTasks('grunt-banner');
|
|
|
|
// Default task
|
|
grunt.registerTask('css', ['less', 'postcss:build', 'rtlcss', 'copy:rtl', 'copy:ltr', 'cssmin', 'usebanner']);
|
|
grunt.registerTask('build', ['clean:build', 'css', 'concat', 'uglify', 'compress', 'copy:build']);
|
|
grunt.registerTask('default', ['build', 'jshint']);
|
|
};
|