1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-21 04:41:36 +02: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 generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js'); var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
var generateRawFiles = require('./grunt/bs-raw-files-generator.js'); var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
var updateShrinkwrap = require('./grunt/shrinkwrap.js'); var updateShrinkwrap = require('./grunt/shrinkwrap.js');
// Project configuration. // Project configuration.
@@ -459,6 +460,11 @@ module.exports = function (grunt) {
generateRawFiles(grunt, banner); 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. // 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', ['exec:npmUpdate', 'exec:npmShrinkWrap', '_update-shrinkwrap']);
grunt.registerTask('_update-shrinkwrap', function () { updateShrinkwrap.call(this, grunt); }); 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/transition.js')
require('../../js/alert') require('../../js/alert.js')
require('../../js/button') require('../../js/button.js')
require('../../js/carousel') require('../../js/carousel.js')
require('../../js/collapse') require('../../js/collapse.js')
require('../../js/dropdown') require('../../js/dropdown.js')
require('../../js/modal') require('../../js/modal.js')
require('../../js/tooltip') require('../../js/tooltip.js')
require('../../js/popover') require('../../js/popover.js')
require('../../js/scrollspy') require('../../js/scrollspy.js')
require('../../js/tab') require('../../js/tab.js')
require('../../js/affix') 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.');
};