0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-02-19 16:54:24 +01:00

generate commonjs/npm entrypoint module via grunt task

This commit is contained in:
James Friend 2014-08-28 09:24:23 +08:00
parent 689faaf16f
commit e7991a9a1e
3 changed files with 41 additions and 12 deletions

View File

@ -20,6 +20,7 @@ module.exports = function (grunt) {
var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
var updateShrinkwrap = require('./grunt/shrinkwrap.js');
// Project configuration.
@ -459,6 +460,11 @@ module.exports = function (grunt) {
generateRawFiles(grunt, banner);
});
grunt.registerTask('build-commonjs', 'Build CommonJS entrypoint module for JS.', function () {
var files = grunt.config.get('concat.bootstrap.src');
generateCommonJSModule(grunt, files);
});
// Task for updating the npm packages used by the Travis build.
grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', 'exec:npmShrinkWrap', '_update-shrinkwrap']);
grunt.registerTask('_update-shrinkwrap', function () { updateShrinkwrap.call(this, grunt); });

24
dist/js/npm.js vendored
View File

@ -1,12 +1,12 @@
require('../../js/transition')
require('../../js/alert')
require('../../js/button')
require('../../js/carousel')
require('../../js/collapse')
require('../../js/dropdown')
require('../../js/modal')
require('../../js/tooltip')
require('../../js/popover')
require('../../js/scrollspy')
require('../../js/tab')
require('../../js/affix')
require('../../js/transition.js')
require('../../js/alert.js')
require('../../js/button.js')
require('../../js/carousel.js')
require('../../js/collapse.js')
require('../../js/dropdown.js')
require('../../js/modal.js')
require('../../js/tooltip.js')
require('../../js/popover.js')
require('../../js/scrollspy.js')
require('../../js/tab.js')
require('../../js/affix.js')

View File

@ -0,0 +1,23 @@
'use strict';
var fs = require('fs');
var path = require('path');
var destDir = 'dist/js';
var destFilename = 'npm.js';
var destFilepath = path.join(destDir, destFilename);
function srcPathToDestRequire(srcFilepath) {
var requirePath = path.relative(destDir, srcFilepath);
return "require('"+requirePath+"')";
}
module.exports = function generateCommonJSModule(grunt, files) {
var moduleOutputJs = files.map(srcPathToDestRequire).join('\n');
try {
fs.writeFileSync(destFilepath, moduleOutputJs);
}
catch (err) {
grunt.fail.warn(err);
}
grunt.log.writeln('File ' + destFilepath.cyan + ' created.');
};