@samitouri / QOS-React-2 / commits / 3171436d97

Switched from browserify to pure-cjs bundler. Optimizations and fix for JSXTransformer build. Dropped dependency on emulation of Node.js native modules. Added deamdify step for JSXTransformer build.

Switched from browserify to pure-cjs bundler. Optimizations and fix for JSXTransformer build. Dropped dependency on emulation of Node.js native modules. Added deamdify step for JSXTransformer build.

Ingvar Stepanyan committed Mar 8, 2014 at 16:33 UTC 3171436d979a61f55e997ac74915b94726fcbe7b
4 files changed +20 -43
grunt/config/browserify.js
+2
@@ -3,6 +3,7 @@
3
4 'use strict';
5
6 +var deamdify = require('deamdify');
7 var envify = require('envify/custom');
8 var es3ify = require('es3ify');
9 var grunt = require('grunt');
@@ -81,6 +82,7 @@ var transformer = {
82 outfile: './build/JSXTransformer.js',
83 debug: false,
84 standalone: 'JSXTransformer',
85 + transforms: [deamdify],
86 after: [es3ify.transform, simpleBannerify]
87 };
88
grunt/tasks/browserify.js
+15 -40
@@ -1,6 +1,6 @@
1 'use strict';
2
3 -var browserify = require('browserify');
3 +var cjs = require('pure-cjs');
4 var grunt = require('grunt');
5
6 module.exports = function() {
@@ -18,51 +18,26 @@ module.exports = function() {
18 config.after = [config.after];
19 }
20
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
21 + // Extract options
22 var options = {
44 - debug: config.debug, // sourcemaps
45 - standalone: config.standalone // global
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
29 };
30
48 - // TODO: make sure this works, test with this too
49 - config.transforms.forEach(function(transform) {
50 - bundle.transform({}, transform);
51 - });
52 -
31 // Actually bundle it up
32 var _this = this;
55 - bundle.bundle(options, function(err, src) {
56 - if (err) {
57 - grunt.log.error(err);
58 - done();
59 - }
60 -
61 - config.after.forEach(function(fn) {
62 - src = fn.call(_this, src);
63 - });
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));
37
65 - grunt.file.write(config.outfile, src);
38 + done();
39 + }, function(err) {
40 + grunt.log.error(err);
41 done();
42 });
43 };
package.json
+2 -1
@@ -39,8 +39,8 @@
39 },
40 "devDependencies": {
41 "benchmark": "~1.0.0",
42 - "browserify": "~3.20.0",
42 "coverify": "~1.0.4",
43 + "deamdify": "~0.1.1",
44 "envify": "~1.2.0",
45 "es3ify": "~0.1.2",
46 "es5-shim": "~2.3.0",
@@ -61,6 +61,7 @@
61 "phantomjs": "~1.9",
62 "platform": "~1.0.0",
63 "populist": "~0.1.6",
64 + "pure-cjs": "~1.8.3",
65 "recast": "~0.5.6",
66 "sauce-tunnel": "~1.1.0",
67 "semver": "~2.2.1",
vendor/browser-transforms.js
+1 -2
@@ -20,7 +20,6 @@
20 var runScripts;
21 var headEl;
22
23 -var buffer = require('buffer');
23 var transform = require('jstransform').transform;
24 var visitors = require('./fbtransform/visitors').transformVisitors;
25 var docblock = require('jstransform/src/docblock');
@@ -123,7 +122,7 @@ var transformCode = function(code, source) {
122 return (
123 transformed.code +
124 '//# sourceMappingURL=data:application/json;base64,' +
126 - buffer.Buffer(JSON.stringify(map)).toString('base64')
125 + btoa(unescape(encodeURIComponent(JSON.stringify(map))))
126 );
127 } else {
128 return code;