Skip to content

Commit

Permalink
Revert "Merge pull request #1234 from RReverser/pure-cjs"
Browse files Browse the repository at this point in the history
This reverts commit 7987e6a, reversing
changes made to d88d479.
  • Loading branch information
zpao committed Mar 18, 2014
1 parent 7987e6a commit 8d495f3
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 117 deletions.
36 changes: 18 additions & 18 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

var exec = require('child_process').exec;
var jsxTask = require('./grunt/tasks/jsx');
var bundleTask = require('./grunt/tasks/bundle');
var browserifyTask = require('./grunt/tasks/browserify');
var populistTask = require('./grunt/tasks/populist');
var webdriverPhantomJSTask = require('./grunt/tasks/webdriver-phantomjs');
var webdriverJasmineTasks = require('./grunt/tasks/webdriver-jasmine');
Expand All @@ -19,7 +19,7 @@ module.exports = function(grunt) {
pkg: grunt.file.readJSON('package.json'),
copy: require('./grunt/config/copy'),
jsx: require('./grunt/config/jsx'),
bundle: require('./grunt/config/bundle'),
browserify: require('./grunt/config/browserify'),
populist: require('./grunt/config/populist'),
connect: require('./grunt/config/server')(grunt),
"webdriver-jasmine": require('./grunt/config/webdriver-jasmine'),
Expand Down Expand Up @@ -52,8 +52,8 @@ module.exports = function(grunt) {
// Register jsx:normal and :release tasks.
grunt.registerMultiTask('jsx', jsxTask);

// Our own bundle-based tasks to build a single JS file build
grunt.registerMultiTask('bundle', bundleTask);
// Our own browserify-based tasks to build a single JS file build
grunt.registerMultiTask('browserify', browserifyTask);

grunt.registerMultiTask('populist', populistTask);

Expand All @@ -71,22 +71,22 @@ module.exports = function(grunt) {

grunt.registerTask('version-check', versionCheckTask);

grunt.registerTask('build:basic', ['jsx:normal', 'version-check', 'bundle:basic']);
grunt.registerTask('build:addons', ['jsx:normal', 'bundle:addons']);
grunt.registerTask('build:transformer', ['jsx:normal', 'bundle:transformer']);
grunt.registerTask('build:min', ['jsx:normal', 'version-check', 'bundle:min']);
grunt.registerTask('build:addons-min', ['jsx:normal', 'bundle:addonsMin']);
grunt.registerTask('build:basic', ['jsx:normal', 'version-check', 'browserify:basic']);
grunt.registerTask('build:addons', ['jsx:normal', 'browserify:addons']);
grunt.registerTask('build:transformer', ['jsx:normal', 'browserify:transformer']);
grunt.registerTask('build:min', ['jsx:normal', 'version-check', 'browserify:min']);
grunt.registerTask('build:addons-min', ['jsx:normal', 'browserify:addonsMin']);
grunt.registerTask('build:withCodeCoverageLogging', [
'jsx:normal',
'version-check',
'bundle:withCodeCoverageLogging'
'browserify:withCodeCoverageLogging'
]);
grunt.registerTask('build:perf', [
'jsx:normal',
'version-check',
'bundle:transformer',
'bundle:basic',
'bundle:min',
'browserify:transformer',
'browserify:basic',
'browserify:min',
'download-previous-version'
]);
grunt.registerTask('build:test', [
Expand Down Expand Up @@ -195,11 +195,11 @@ module.exports = function(grunt) {
'delete-build-modules',
'jsx:normal',
'version-check',
'bundle:basic',
'bundle:transformer',
'bundle:addons',
'bundle:min',
'bundle:addonsMin',
'browserify:basic',
'browserify:transformer',
'browserify:addons',
'browserify:min',
'browserify:addonsMin',
'npm-react:release',
'npm-react:pack',
'npm-react-tools:pack',
Expand Down
106 changes: 48 additions & 58 deletions grunt/config/bundle.js → grunt/config/browserify.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

'use strict';

var deamdify = require('deamdify');
var envify = require('envify/custom');
var es3ify = require('es3ify');
var grunt = require('grunt');
var UglifyJS = require('uglify-js');
var uglifyify = require('uglifyify');
var _ = require('lodash');

var SIMPLE_TEMPLATE =
Expand Down Expand Up @@ -55,76 +55,66 @@ function simpleBannerify(src) {
'\n' + src;
}

function override(obj1, obj2) {
return _.merge({}, obj1, obj2, function (a, b) {
if (_.isArray(a)) {
return b;
}
})
}

// Our basic config which we'll add to to make our other builds
var basic = {
src: './build/modules/React.js',
dest: './build/react.js',
options: {
debug: false,
standalone: 'React',
transforms: [envify({NODE_ENV: 'development'})],
after: [es3ify.transform, simpleBannerify]
}
entries: [
'./build/modules/React.js'
],
outfile: './build/react.js',
debug: false,
standalone: 'React',
transforms: [envify({NODE_ENV: 'development'})],
after: [es3ify.transform, simpleBannerify]
};

var min = override(basic, {
dest: './build/react.min.js',
options: {
debug: false,
transforms: [envify({NODE_ENV: 'production'})],
after: [minify, bannerify]
}
var min = _.merge({}, basic, {
outfile: './build/react.min.js',
debug: false,
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
after: [minify, bannerify]
});

var transformer = {
src: './vendor/browser-transforms.js',
dest: './build/JSXTransformer.js',
options: {
debug: false,
standalone: 'JSXTransformer',
transforms: [deamdify],
after: [es3ify.transform, simpleBannerify]
}
entries:[
'./vendor/browser-transforms.js'
],
outfile: './build/JSXTransformer.js',
debug: false,
standalone: 'JSXTransformer',
after: [es3ify.transform, simpleBannerify]
};

var addons = {
src: './build/modules/ReactWithAddons.js',
dest: './build/react-with-addons.js',
options: {
debug: false,
standalone: 'React',
transforms: [envify({NODE_ENV: 'development'})],
packageName: 'React (with addons)',
after: [es3ify.transform, simpleBannerify]
}
entries: [
'./build/modules/ReactWithAddons.js'
],
outfile: './build/react-with-addons.js',
debug: false,
standalone: 'React',
transforms: [envify({NODE_ENV: 'development'})],
packageName: 'React (with addons)',
after: [es3ify.transform, simpleBannerify]
};

var addonsMin = override(addons, {
dest: './build/react-with-addons.min.js',
options: {
debug: false,
transforms: [envify({NODE_ENV: 'production'})],
after: [minify, bannerify]
}
var addonsMin = _.merge({}, addons, {
outfile: './build/react-with-addons.min.js',
debug: false,
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
after: [minify, bannerify]
});

var withCodeCoverageLogging = override(basic, {
options: {
debug: true,
transforms: [
envify({NODE_ENV: 'development'}),
require('coverify')
],
after: []
}
});
var withCodeCoverageLogging = {
entries: [
'./build/modules/React.js'
],
outfile: './build/react.js',
debug: true,
standalone: 'React',
transforms: [
envify({NODE_ENV: 'development'}),
require('coverify')
]
};

module.exports = {
basic: basic,
Expand Down
68 changes: 68 additions & 0 deletions grunt/tasks/browserify.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
'use strict';

var browserify = require('browserify');
var grunt = require('grunt');

module.exports = function() {
var config = this.data;

// This task is async...
var done = this.async();

// More/better assertions
// grunt.config.requires('outfile');
// grunt.config.requires('entries');
config.transforms = config.transforms || [];
config.after = config.after || [];
if (typeof config.after === 'function') {
config.after = [config.after];
}

// create the bundle we'll work with
var entries = grunt.file.expand(config.entries);
var bundle = browserify(entries);

// Make sure the things that need to be exposed are.
var requires = config.requires || {};
if (requires instanceof Array) {
grunt.file.expand({
nonull: true, // Keep IDs that don't expand to anything.
cwd: "src"
}, requires).forEach(function(name) {
bundle.require("./build/modules/" + name, {
expose: name.replace(/\.js$/i, "")
});
});
} else if (typeof requires === "object") {
Object.keys(requires).forEach(function(name) {
bundle.require(requires[name], { expose: name });
});
}

// Extract other options
var options = {
debug: config.debug, // sourcemaps
standalone: config.standalone // global
};

// TODO: make sure this works, test with this too
config.transforms.forEach(function(transform) {
bundle.transform({}, transform);
});

// Actually bundle it up
var _this = this;
bundle.bundle(options, function(err, src) {
if (err) {
grunt.log.error(err);
done();
}

config.after.forEach(function(fn) {
src = fn.call(_this, src);
});

grunt.file.write(config.outfile, src);
done();
});
};
38 changes: 0 additions & 38 deletions grunt/tasks/bundle.js

This file was deleted.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@
},
"devDependencies": {
"benchmark": "~1.0.0",
"browserify": "~3.20.0",
"coverify": "~1.0.4",
"deamdify": "~0.1.1",
"envify": "~1.2.0",
"es3ify": "~0.1.2",
"es5-shim": "~2.3.0",
Expand All @@ -61,7 +61,6 @@
"phantomjs": "~1.9",
"platform": "~1.0.0",
"populist": "~0.1.6",
"pure-cjs": "~1.9.0",
"recast": "~0.5.6",
"sauce-tunnel": "~1.1.0",
"semver": "~2.2.1",
Expand Down
3 changes: 2 additions & 1 deletion vendor/browser-transforms.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
var runScripts;
var headEl;

var buffer = require('buffer');
var transform = require('jstransform').transform;
var visitors = require('./fbtransform/visitors').transformVisitors;
var docblock = require('jstransform/src/docblock');
Expand Down Expand Up @@ -122,7 +123,7 @@ var transformCode = function(code, source) {
return (
transformed.code +
'//# sourceMappingURL=data:application/json;base64,' +
btoa(unescape(encodeURIComponent(JSON.stringify(map))))
buffer.Buffer(JSON.stringify(map)).toString('base64')
);
} else {
return code;
Expand Down

0 comments on commit 8d495f3

Please sign in to comment.