@samitouri / QOS-React-2 / commits / d03d49101b

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",