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.
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); });
-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')
\ No newline at end of file
--- /dev/null
+'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.');
+};