browserify update
Paul O’Shannessy committed
Sep 30, 2014 at 20:31 UTC
d03d49101b14a370e7693acb99668b9fc73d7d65
3 files changed
+30
-36
grunt/config/browserify.js
+21
-11
@@ -8,7 +8,7 @@ var es3ify = require('es3ify');
8
var grunt = require('grunt');
9
var UglifyJS = require('uglify-js');
10
var uglifyify = require('uglifyify');
11
-var _ = require('lodash');
11
+var derequire = require('derequire');
12
13
var SIMPLE_TEMPLATE =
14
'/**\n\
@@ -58,15 +58,19 @@ var basic = {
58
debug: false,
59
standalone: 'React',
60
transforms: [envify({NODE_ENV: 'development'})],
61
- after: [es3ify.transform, simpleBannerify]
61
+ after: [es3ify.transform, derequire, simpleBannerify]
62
};
63
64
-var min = _.merge({}, basic, {
64
+var min = {
65
+ entries: [
66
+ './build/modules/React.js'
67
+ ],
68
outfile: './build/react.min.js',
69
debug: false,
70
+ standalone: 'React',
71
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
68
- after: [minify, bannerify]
69
-});
72
+ after: [es3ify.transform, derequire, minify, bannerify]
73
+};
74
75
var transformer = {
76
entries:[
@@ -75,7 +79,8 @@ var transformer = {
79
outfile: './build/JSXTransformer.js',
80
debug: false,
81
standalone: 'JSXTransformer',
78
- after: [es3ify.transform, simpleBannerify]
82
+ transforms: [],
83
+ after: [es3ify.transform, derequire, simpleBannerify]
84
};
85
86
var addons = {
@@ -85,17 +90,22 @@ var addons = {
90
outfile: './build/react-with-addons.js',
91
debug: false,
92
standalone: 'React',
88
- transforms: [envify({NODE_ENV: 'development'})],
93
packageName: 'React (with addons)',
90
- after: [es3ify.transform, simpleBannerify]
94
+ transforms: [envify({NODE_ENV: 'development'})],
95
+ after: [es3ify.transform, derequire, simpleBannerify]
96
};
97
93
-var addonsMin = _.merge({}, addons, {
98
+var addonsMin = {
99
+ entries: [
100
+ './build/modules/ReactWithAddons.js'
101
+ ],
102
outfile: './build/react-with-addons.min.js',
103
debug: false,
104
+ standalone: 'React',
105
+ packageName: 'React (with addons)',
106
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
97
- after: [minify, bannerify]
98
-});
107
+ after: [es3ify.transform, derequire, minify, bannerify]
108
+};
109
110
var withCodeCoverageLogging = {
111
entries: [
grunt/tasks/browserify.js
+7
-24
@@ -14,50 +14,33 @@ module.exports = function() {
14
// grunt.config.requires('entries');
15
config.transforms = config.transforms || [];
16
config.after = config.after || [];
17
- if (typeof config.after === 'function') {
18
- config.after = [config.after];
19
- }
17
18
// create the bundle we'll work with
19
var entries = grunt.file.expand(config.entries);
23
- var bundle = browserify(entries);
24
-
25
- // Make sure the things that need to be exposed are.
26
- var requires = config.requires || {};
27
- if (requires instanceof Array) {
28
- grunt.file.expand({
29
- nonull: true, // Keep IDs that don't expand to anything.
30
- cwd: "src"
31
- }, requires).forEach(function(name) {
32
- bundle.require("./build/modules/" + name, {
33
- expose: name.replace(/\.js$/i, "")
34
- });
35
- });
36
- } else if (typeof requires === "object") {
37
- Object.keys(requires).forEach(function(name) {
38
- bundle.require(requires[name], { expose: name });
39
- });
40
- }
20
21
// Extract other options
22
var options = {
23
+ entries: entries,
24
debug: config.debug, // sourcemaps
25
standalone: config.standalone // global
26
};
27
48
- // TODO: make sure this works, test with this too
28
+ var bundle = browserify(options);
29
+
30
config.transforms.forEach(function(transform) {
31
bundle.transform({}, transform);
32
});
33
34
// Actually bundle it up
35
var _this = this;
55
- bundle.bundle(options, function(err, src) {
36
+ bundle.bundle(function(err, buf) {
37
if (err) {
38
grunt.log.error(err);
58
- done();
39
+ return done();
40
}
41
42
+ var src = buf.toString();
43
+
44
config.after.forEach(function(fn) {
45
src = fn.call(_this, src);
46
});
package.json
+2
-1
@@ -32,8 +32,9 @@
32
},
33
"devDependencies": {
34
"benchmark": "~1.0.0",
35
- "browserify": "^4.1.10",
35
+ "browserify": "^6.1.0",
36
"coverify": "~1.0.4",
37
+ "derequire": "^1.2.0",
38
"envify": "^3.0.0",
39
"es3ify": "~0.1.2",
40
"es5-shim": "^4.0.0",