Skip to content

Commit e7991a9

Browse files
committed
generate commonjs/npm entrypoint module via grunt task
1 parent 689faaf commit e7991a9

File tree

3 files changed

+41
-12
lines changed

3 files changed

+41
-12
lines changed

Gruntfile.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ module.exports = function (grunt) {
2020
var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
2121
var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
2222
var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
23+
var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
2324
var updateShrinkwrap = require('./grunt/shrinkwrap.js');
2425

2526
// Project configuration.
@@ -459,6 +460,11 @@ module.exports = function (grunt) {
459460
generateRawFiles(grunt, banner);
460461
});
461462

463+
grunt.registerTask('build-commonjs', 'Build CommonJS entrypoint module for JS.', function () {
464+
var files = grunt.config.get('concat.bootstrap.src');
465+
generateCommonJSModule(grunt, files);
466+
});
467+
462468
// Task for updating the npm packages used by the Travis build.
463469
grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', 'exec:npmShrinkWrap', '_update-shrinkwrap']);
464470
grunt.registerTask('_update-shrinkwrap', function () { updateShrinkwrap.call(this, grunt); });

dist/js/npm.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
require('../../js/transition')
2-
require('../../js/alert')
3-
require('../../js/button')
4-
require('../../js/carousel')
5-
require('../../js/collapse')
6-
require('../../js/dropdown')
7-
require('../../js/modal')
8-
require('../../js/tooltip')
9-
require('../../js/popover')
10-
require('../../js/scrollspy')
11-
require('../../js/tab')
12-
require('../../js/affix')
1+
require('../../js/transition.js')
2+
require('../../js/alert.js')
3+
require('../../js/button.js')
4+
require('../../js/carousel.js')
5+
require('../../js/collapse.js')
6+
require('../../js/dropdown.js')
7+
require('../../js/modal.js')
8+
require('../../js/tooltip.js')
9+
require('../../js/popover.js')
10+
require('../../js/scrollspy.js')
11+
require('../../js/tab.js')
12+
require('../../js/affix.js')

grunt/bs-commonjs-generator.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use strict';
2+
var fs = require('fs');
3+
var path = require('path');
4+
5+
var destDir = 'dist/js';
6+
var destFilename = 'npm.js';
7+
var destFilepath = path.join(destDir, destFilename);
8+
9+
function srcPathToDestRequire(srcFilepath) {
10+
var requirePath = path.relative(destDir, srcFilepath);
11+
return "require('"+requirePath+"')";
12+
}
13+
14+
module.exports = function generateCommonJSModule(grunt, files) {
15+
var moduleOutputJs = files.map(srcPathToDestRequire).join('\n');
16+
try {
17+
fs.writeFileSync(destFilepath, moduleOutputJs);
18+
}
19+
catch (err) {
20+
grunt.fail.warn(err);
21+
}
22+
grunt.log.writeln('File ' + destFilepath.cyan + ' created.');
23+
};

0 commit comments

Comments
 (0)