Skip to content
This repository was archived by the owner on Nov 4, 2020. It is now read-only.

Commit fd4a47e

Browse files
committed
Update browser script to again emit UMD bundle
1 parent d343b84 commit fd4a47e

File tree

3 files changed

+61
-28
lines changed

3 files changed

+61
-28
lines changed

browser-entry.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
window.Should = require('./index');
2-
3-
Object.defineProperty(window, 'should', {
4-
enumerable: false,
5-
configurable: true,
6-
value: window.Should
7-
});
1+
should = require('./index');

gulpfile.js

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,78 @@
1-
var gulp = require('gulp');
1+
'use strict';
22

3-
var header = require('gulp-header');
4-
var uglify = require('gulp-uglify');
5-
var rename = require('gulp-rename');
3+
const gulp = require('gulp');
64

7-
var source = require('vinyl-source-stream');
8-
var buffer = require('vinyl-buffer');
5+
const derequire = require('gulp-derequire');
6+
const wrapper = require('gulp-wrapper');
7+
const uglify = require('gulp-uglify');
8+
const rename = require('gulp-rename');
99

10-
var browserify = require('browserify');
10+
const source = require('vinyl-source-stream');
11+
const buffer = require('vinyl-buffer');
1112

12-
var pkg = require('./package.json');
13+
const browserify = require('browserify');
14+
const collapse = require('bundle-collapser');
1315

14-
var banner = [
15-
'/*!',
16-
' * <%= pkg.name %> - <%= pkg.description %>',
17-
' * @version v<%= pkg.version %>',
18-
' * @author <%= pkg.author %>',
19-
' * @link <%= pkg.homepage %>',
20-
' * @license <%= pkg.license %>',
21-
' */',
22-
''].join('\n');
16+
const pkg = require('./package.json');
2317

24-
gulp.task('script', function() {
18+
const template = require('lodash.template')
19+
20+
const header = template(`
21+
/*!
22+
* <%= pkg.name %> - <%= pkg.description %>
23+
* @version v<%= pkg.version %>
24+
* @author <%= pkg.author %>
25+
* @link <%= pkg.homepage %>
26+
* @license <%= pkg.license %>
27+
*/
28+
29+
;(function (root, factory) {
30+
if (typeof define === 'function' && define.amd) {
31+
define([], factory);
32+
} else if (typeof module === 'object' && module.exports) {
33+
module.exports = factory();
34+
} else {
35+
root.Should = factory();
36+
37+
Object.defineProperty(root, 'should', {
38+
enumerable: false,
39+
configurable: true,
40+
value: root.Should
41+
});
42+
}
43+
}(this, function () {
44+
var should, require = null;
45+
`, { variable: 'pkg' })(pkg);
46+
47+
var footer = `
48+
return should;
49+
}));
50+
`;
51+
52+
gulp.task('script', () => {
2553
var bundleStream = browserify({
2654
entries: './browser-entry',
2755
builtins: null,
2856
insertGlobals: false,
2957
detectGlobals: false,
30-
fullPaths: false
58+
fullPaths: false,
59+
hasExports: false
3160
})
61+
.plugin('bundle-collapser/plugin')
3262
.bundle();
3363

3464
return bundleStream
3565
.pipe(source('should.js'))
3666
.pipe(buffer())
37-
.pipe(header(banner, {pkg: pkg}))
67+
.pipe(derequire())
68+
.pipe(wrapper({
69+
header,
70+
footer
71+
}))
3872
.pipe(gulp.dest('./'))
3973
.pipe(uglify({ preserveComments: 'some' }))
4074
.pipe(rename('should.min.js'))
4175
.pipe(gulp.dest('./'));
4276
});
77+
78+
gulp.task('default', ['script']);

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@
1616
"devDependencies": {
1717
"bluebird": "^3.0.6",
1818
"browserify": "latest",
19+
"bundle-collapser": "^1.2.1",
1920
"eslint": "^2.4.0",
2021
"gulp": "^3.8.10",
21-
"gulp-header": "^1.2.2",
22+
"gulp-derequire": "^2.1.0",
2223
"gulp-rename": "^1.2.0",
2324
"gulp-uglify": "^1.0.1",
25+
"gulp-wrapper": "^1.0.0",
26+
"lodash.template": "^4.2.4",
2427
"mocha": "latest",
2528
"mocha-better-spec-reporter": "latest",
2629
"vinyl-buffer": "^1.0.0",

0 commit comments

Comments
 (0)