Skip to content

Commit 6d4b470

Browse files
committed
Merge pull request #1016 from benjamn/revert-pure-cjs-until-0.9
Revert commits switching from browserify to pure-cjs (on hold until after v0.9 ships).
2 parents 806e879 + 9f1ed70 commit 6d4b470

File tree

4 files changed

+46
-26
lines changed

4 files changed

+46
-26
lines changed

grunt/config/browserify.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
'use strict';
55

6-
var deamdify = require('deamdify');
76
var envify = require('envify/custom');
87
var grunt = require('grunt');
98
var UglifyJS = require('uglify-js');
9+
var uglifyify = require('uglifyify');
1010
var _ = require('lodash');
1111

1212
var SIMPLE_TEMPLATE =
@@ -69,7 +69,7 @@ var basic = {
6969
var min = _.merge({}, basic, {
7070
outfile: './build/react.min.js',
7171
debug: false,
72-
transforms: [envify({NODE_ENV: 'production'})],
72+
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
7373
after: [minify, bannerify]
7474
});
7575

@@ -80,7 +80,6 @@ var transformer = {
8080
outfile: './build/JSXTransformer.js',
8181
debug: false,
8282
standalone: 'JSXTransformer',
83-
transforms: [deamdify],
8483
after: [simpleBannerify]
8584
};
8685

@@ -99,7 +98,7 @@ var addons = {
9998
var addonsMin = _.merge({}, addons, {
10099
outfile: './build/react-with-addons.min.js',
101100
debug: false,
102-
transforms: [envify({NODE_ENV: 'production'})],
101+
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
103102
after: [minify, bannerify]
104103
});
105104

grunt/tasks/browserify.js

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
var cjs = require('pure-cjs');
3+
var browserify = require('browserify');
44
var grunt = require('grunt');
55

66
module.exports = function() {
@@ -18,26 +18,51 @@ module.exports = function() {
1818
config.after = [config.after];
1919
}
2020

21-
// Extract options
21+
// create the bundle we'll work with
22+
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+
}
41+
42+
// Extract other options
2243
var options = {
23-
input: config.entries[0],
24-
output: config.outfile,
25-
map: config.debug, // sourcemaps
26-
exports: config.standalone, // global
27-
transform: config.transforms,
28-
dryRun: true // we will write to disk ourselves
44+
debug: config.debug, // sourcemaps
45+
standalone: config.standalone // global
2946
};
3047

48+
// TODO: make sure this works, test with this too
49+
config.transforms.forEach(function(transform) {
50+
bundle.transform({}, transform);
51+
});
52+
3153
// Actually bundle it up
3254
var _this = this;
33-
cjs.transform(options).then(function(result) {
34-
grunt.file.write(config.outfile, config.after.reduce(function(src, fn) {
35-
return fn.call(_this, src);
36-
}, result.code));
55+
bundle.bundle(options, function(err, src) {
56+
if (err) {
57+
grunt.log.error(err);
58+
done();
59+
}
3760

38-
done();
39-
}, function(err) {
40-
grunt.log.error(err);
61+
config.after.forEach(function(fn) {
62+
src = fn.call(_this, src);
63+
});
64+
65+
grunt.file.write(config.outfile, src);
4166
done();
4267
});
4368
};

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
},
4040
"devDependencies": {
4141
"benchmark": "~1.0.0",
42+
"browserify": "~3.20.0",
4243
"coverify": "~1.0.4",
43-
"deamdify": "~0.1.1",
4444
"envify": "~1.0.1",
4545
"es5-shim": "~2.3.0",
4646
"grunt": "~0.4.2",
@@ -60,7 +60,6 @@
6060
"phantomjs": "~1.9",
6161
"platform": "~1.0.0",
6262
"populist": "~0.1.6",
63-
"pure-cjs": "~1.8.3",
6463
"recast": "~0.5.6",
6564
"sauce-tunnel": "~1.1.0",
6665
"semver": "~2.2.1",

vendor/browser-transforms.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
var runScripts;
2121
var headEl;
2222

23+
var buffer = require('buffer');
2324
var transform = require('jstransform').transform;
2425
var visitors = require('./fbtransform/visitors').transformVisitors;
2526
var docblock = require('jstransform/src/docblock');
@@ -96,10 +97,6 @@ var transformCode = function(code, source) {
9697
throw e;
9798
}
9899

99-
if (typeof btoa === 'undefined') {
100-
return transformed.code;
101-
}
102-
103100
var map = transformed.sourceMap.toJSON();
104101
if (source == null) {
105102
source = "Inline JSX script";
@@ -114,7 +111,7 @@ var transformCode = function(code, source) {
114111
return (
115112
transformed.code +
116113
'//# sourceMappingURL=data:application/json;base64,' +
117-
btoa(unescape(encodeURIComponent(JSON.stringify(map))))
114+
buffer.Buffer(JSON.stringify(map)).toString('base64')
118115
);
119116
} else {
120117
return code;

0 commit comments

Comments
 (0)