Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Gruntfile.js')
-rw-r--r--Gruntfile.js114
1 files changed, 84 insertions, 30 deletions
diff --git a/Gruntfile.js b/Gruntfile.js
index c4da304ddb..4aaef63ef6 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -44,6 +44,9 @@ module.exports = function (grunt) {
jshintrc: 'js/.jshintrc'
},
grunt: {
+ options: {
+ jshintrc: 'grunt/.jshintrc'
+ },
src: ['Gruntfile.js', 'grunt/*.js']
},
src: {
@@ -53,25 +56,29 @@ module.exports = function (grunt) {
src: 'js/tests/unit/*.js'
},
assets: {
- src: ['docs/assets/js/application.js', 'docs/assets/js/customizer.js']
+ src: 'docs/assets/js/src/*.js'
}
},
jscs: {
options: {
- config: 'js/.jscs.json',
+ config: 'js/.jscsrc'
},
grunt: {
- src: ['Gruntfile.js', 'grunt/*.js']
+ options: {
+ 'requireCamelCaseOrUpperCaseIdentifiers': null,
+ 'requireParenthesesAroundIIFE': true
+ },
+ src: '<%= jshint.grunt.src %>'
},
src: {
- src: 'js/*.js'
+ src: '<%= jshint.src.src %>'
},
test: {
- src: 'js/tests/unit/*.js'
+ src: '<%= jshint.test.src %>'
},
assets: {
- src: ['docs/assets/js/application.js', 'docs/assets/js/customizer.js']
+ src: '<%= jshint.assets.src %>'
}
},
@@ -81,10 +88,18 @@ module.exports = function (grunt) {
},
src: [
'dist/css/bootstrap.css',
- 'dist/css/bootstrap-theme.css',
- 'docs/assets/css/docs.css',
+ 'dist/css/bootstrap-theme.css'
+ ],
+ examples: [
'docs/examples/**/*.css'
- ]
+ ],
+ docs: {
+ options: {
+ 'ids': false,
+ 'overqualified-elements': false
+ },
+ src: 'docs/assets/css/src/docs.css'
+ }
},
concat: {
@@ -128,12 +143,12 @@ module.exports = function (grunt) {
},
src: [
'docs/assets/js/vendor/less.min.js',
- 'docs/assets/js/vendor/jszip.js',
+ 'docs/assets/js/vendor/jszip.min.js',
'docs/assets/js/vendor/uglify.min.js',
'docs/assets/js/vendor/blob.js',
'docs/assets/js/vendor/filesaver.js',
'docs/assets/js/raw-files.min.js',
- 'docs/assets/js/customizer.js'
+ 'docs/assets/js/src/customizer.js'
],
dest: 'docs/assets/js/customize.min.js'
},
@@ -143,7 +158,7 @@ module.exports = function (grunt) {
},
src: [
'docs/assets/js/vendor/holder.js',
- 'docs/assets/js/application.js'
+ 'docs/assets/js/src/application.js'
],
dest: 'docs/assets/js/docs.min.js'
}
@@ -181,22 +196,58 @@ module.exports = function (grunt) {
},
files: {
'dist/css/<%= pkg.name %>.min.css': 'dist/css/<%= pkg.name %>.css',
+ 'dist/css/<%= pkg.name %>-rtl.min.css': 'dist/css/<%= pkg.name %>-rtl.css',
'dist/css/<%= pkg.name %>-theme.min.css': 'dist/css/<%= pkg.name %>-theme.css'
}
}
},
+ autoprefixer: {
+ options: {
+ browsers: ['last 2 versions', 'ie 8', 'ie 9', 'android 2.3', 'android 4', 'opera 12']
+ },
+ core: {
+ options: {
+ map: true
+ },
+ src: 'dist/css/<%= pkg.name %>.css'
+ },
+ theme: {
+ options: {
+ map: true
+ },
+ src: 'dist/css/<%= pkg.name %>-theme.css'
+ },
+ docs: {
+ src: 'docs/assets/css/docs.css'
+ },
+ examples: {
+ expand: true,
+ cwd: 'docs/examples/',
+ src: ['**/*.css'],
+ dest: 'docs/examples/'
+ }
+ },
+
+ css_flip: {
+ rtl: {
+ files: {
+ 'dist/css/<%= pkg.name %>-rtl.css': 'dist/css/<%= pkg.name %>.css'
+ }
+ }
+ },
+
cssmin: {
compress: {
options: {
keepSpecialComments: '*',
noAdvanced: true, // turn advanced optimizations off until the issue is fixed in clean-css
report: 'min',
- selectorsMergeMode: 'ie8'
+ compatibility: 'ie8'
},
src: [
- 'docs/assets/css/docs.css',
- 'docs/assets/css/pygments-manni.css'
+ 'docs/assets/css/src/docs.css',
+ 'docs/assets/css/src/pygments-manni.css'
],
dest: 'docs/assets/css/docs.min.css'
}
@@ -211,7 +262,9 @@ module.exports = function (grunt) {
files: {
src: [
'dist/css/<%= pkg.name %>.css',
+ 'dist/css/<%= pkg.name %>-rtl.css',
'dist/css/<%= pkg.name %>.min.css',
+ 'dist/css/<%= pkg.name %>-rtl.min.css',
'dist/css/<%= pkg.name %>-theme.css',
'dist/css/<%= pkg.name %>-theme.min.css'
]
@@ -226,14 +279,20 @@ module.exports = function (grunt) {
dist: {
files: {
'dist/css/<%= pkg.name %>.css': 'dist/css/<%= pkg.name %>.css',
+ 'dist/css/<%= pkg.name %>-rtl.css': 'dist/css/<%= pkg.name %>-rtl.css',
'dist/css/<%= pkg.name %>-theme.css': 'dist/css/<%= pkg.name %>-theme.css'
}
},
examples: {
- expand: true,
- cwd: 'docs/examples/',
- src: ['**/*.css'],
- dest: 'docs/examples/'
+ expand: true,
+ cwd: 'docs/examples/',
+ src: '**/*.css',
+ dest: 'docs/examples/'
+ },
+ docs: {
+ files: {
+ 'docs/assets/css/src/docs.css': 'docs/assets/css/src/docs.css'
+ }
}
},
@@ -259,7 +318,7 @@ module.exports = function (grunt) {
options: {
inject: 'js/tests/unit/phantom.js'
},
- files: 'js/tests/*.html'
+ files: 'js/tests/index.html'
},
connect: {
@@ -287,8 +346,8 @@ module.exports = function (grunt) {
}
},
files: {
- 'docs/_includes/customizer-variables.html': 'docs/customizer-variables.jade',
- 'docs/_includes/nav-customize.html': 'docs/customizer-nav.jade'
+ 'docs/_includes/customizer-variables.html': 'docs/jade/customizer-variables.jade',
+ 'docs/_includes/nav-customize.html': 'docs/jade/customizer-nav.jade'
}
}
},
@@ -359,7 +418,7 @@ module.exports = function (grunt) {
// These plugins provide necessary tasks.
require('load-grunt-tasks')(grunt, {scope: 'devDependencies'});
- grunt.loadNpmTasks('browserstack-runner');
+ require('time-grunt')(grunt);
// Docs HTML validation task
grunt.registerTask('validate-html', ['jekyll', 'validation']);
@@ -381,19 +440,14 @@ module.exports = function (grunt) {
testSubtasks.push('connect');
testSubtasks.push('saucelabs-qunit');
}
- // Only run BrowserStack tests if there's a BrowserStack access key
- if (typeof process.env.BROWSERSTACK_KEY !== 'undefined' &&
- // Skip BrowserStack if running a different subset of the test suite
- (!process.env.TWBS_TEST || process.env.TWBS_TEST === 'browserstack-js-unit')) {
- testSubtasks.push('browserstack_runner');
- }
grunt.registerTask('test', testSubtasks);
// JS distribution task.
grunt.registerTask('dist-js', ['concat', 'uglify']);
// CSS distribution task.
- grunt.registerTask('dist-css', ['less', 'cssmin', 'csscomb', 'usebanner']);
+ grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']);
+ grunt.registerTask('dist-css', ['less-compile', 'autoprefixer', 'css_flip', 'csscomb', 'less:minify', 'cssmin', 'usebanner']);
// Docs distribution task.
grunt.registerTask('dist-docs', 'copy:docs');