mirror of
https://github.com/tenrok/bootstrap.git
synced 2026-06-17 19:21:23 +03:00
Remove duplicate code from Customizer/Gruntfile by sharing it
This commit is contained in:
+17
-42
@@ -27,6 +27,13 @@ module.exports = function (grunt) {
|
||||
};
|
||||
var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
|
||||
var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
|
||||
var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' });
|
||||
|
||||
Object.keys(configBridge.paths).forEach(function (key) {
|
||||
configBridge.paths[key].forEach(function (val, i, arr) {
|
||||
arr[i] = path.join('./docs/assets', val);
|
||||
});
|
||||
});
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
@@ -38,21 +45,8 @@ module.exports = function (grunt) {
|
||||
' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
|
||||
' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' +
|
||||
' */\n',
|
||||
// NOTE: This jqueryCheck/jqueryVersionCheck code is duplicated in customizer.js;
|
||||
// if making changes here, be sure to update the other copy too.
|
||||
jqueryCheck: [
|
||||
'if (typeof jQuery === \'undefined\') {',
|
||||
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')',
|
||||
'}\n'
|
||||
].join('\n'),
|
||||
jqueryVersionCheck: [
|
||||
'+function ($) {',
|
||||
' var version = $.fn.jquery.split(\' \')[0].split(\'.\')',
|
||||
' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {',
|
||||
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')',
|
||||
' }',
|
||||
'}(jQuery);\n\n'
|
||||
].join('\n'),
|
||||
jqueryCheck: configBridge.config.jqueryCheck.join('\n'),
|
||||
jqueryVersionCheck: configBridge.config.jqueryVersionCheck.join('\n'),
|
||||
|
||||
// Task configuration.
|
||||
clean: {
|
||||
@@ -138,25 +132,11 @@ module.exports = function (grunt) {
|
||||
dest: 'dist/js/<%= pkg.name %>.min.js'
|
||||
},
|
||||
customize: {
|
||||
// NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
|
||||
src: [
|
||||
'docs/assets/js/vendor/less.min.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/src/customizer.js'
|
||||
],
|
||||
src: configBridge.paths.customizerJs,
|
||||
dest: 'docs/assets/js/customize.min.js'
|
||||
},
|
||||
docsJs: {
|
||||
// NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
|
||||
src: [
|
||||
'docs/assets/js/vendor/holder.js',
|
||||
'docs/assets/js/vendor/ZeroClipboard.min.js',
|
||||
'docs/assets/js/src/application.js'
|
||||
],
|
||||
src: configBridge.paths.docsJs,
|
||||
dest: 'docs/assets/js/docs.min.js'
|
||||
}
|
||||
},
|
||||
@@ -195,16 +175,7 @@ module.exports = function (grunt) {
|
||||
|
||||
autoprefixer: {
|
||||
options: {
|
||||
browsers: [
|
||||
'Android 2.3',
|
||||
'Android >= 4',
|
||||
'Chrome >= 20',
|
||||
'Firefox >= 24', // Firefox 24 is the latest ESR
|
||||
'Explorer >= 8',
|
||||
'iOS >= 6',
|
||||
'Opera >= 12',
|
||||
'Safari >= 6'
|
||||
]
|
||||
browsers: configBridge.config.autoprefixerBrowsers
|
||||
},
|
||||
core: {
|
||||
options: {
|
||||
@@ -312,6 +283,10 @@ module.exports = function (grunt) {
|
||||
docs: {
|
||||
src: 'dist/*/*',
|
||||
dest: 'docs/'
|
||||
},
|
||||
configBridge: {
|
||||
src: 'grunt/configBridge.json',
|
||||
dest: 'docs/_data/configBridge.json'
|
||||
}
|
||||
},
|
||||
|
||||
@@ -482,7 +457,7 @@ module.exports = function (grunt) {
|
||||
grunt.registerTask('lint-docs-css', ['csslint:docs', 'csslint:examples']);
|
||||
grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']);
|
||||
grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']);
|
||||
grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-customizer']);
|
||||
grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'copy:configBridge', 'build-customizer']);
|
||||
|
||||
// Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json).
|
||||
// This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
|
||||
|
||||
Reference in New Issue
Block a user