mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
browserify update
This commit is contained in:
parent
67307ce850
commit
d03d49101b
|
|
@ -8,7 +8,7 @@ var es3ify = require('es3ify');
|
|||
var grunt = require('grunt');
|
||||
var UglifyJS = require('uglify-js');
|
||||
var uglifyify = require('uglifyify');
|
||||
var _ = require('lodash');
|
||||
var derequire = require('derequire');
|
||||
|
||||
var SIMPLE_TEMPLATE =
|
||||
'/**\n\
|
||||
|
|
@ -58,15 +58,19 @@ var basic = {
|
|||
debug: false,
|
||||
standalone: 'React',
|
||||
transforms: [envify({NODE_ENV: 'development'})],
|
||||
after: [es3ify.transform, simpleBannerify]
|
||||
after: [es3ify.transform, derequire, simpleBannerify]
|
||||
};
|
||||
|
||||
var min = _.merge({}, basic, {
|
||||
var min = {
|
||||
entries: [
|
||||
'./build/modules/React.js'
|
||||
],
|
||||
outfile: './build/react.min.js',
|
||||
debug: false,
|
||||
standalone: 'React',
|
||||
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
|
||||
after: [minify, bannerify]
|
||||
});
|
||||
after: [es3ify.transform, derequire, minify, bannerify]
|
||||
};
|
||||
|
||||
var transformer = {
|
||||
entries:[
|
||||
|
|
@ -75,7 +79,8 @@ var transformer = {
|
|||
outfile: './build/JSXTransformer.js',
|
||||
debug: false,
|
||||
standalone: 'JSXTransformer',
|
||||
after: [es3ify.transform, simpleBannerify]
|
||||
transforms: [],
|
||||
after: [es3ify.transform, derequire, simpleBannerify]
|
||||
};
|
||||
|
||||
var addons = {
|
||||
|
|
@ -85,17 +90,22 @@ var addons = {
|
|||
outfile: './build/react-with-addons.js',
|
||||
debug: false,
|
||||
standalone: 'React',
|
||||
transforms: [envify({NODE_ENV: 'development'})],
|
||||
packageName: 'React (with addons)',
|
||||
after: [es3ify.transform, simpleBannerify]
|
||||
transforms: [envify({NODE_ENV: 'development'})],
|
||||
after: [es3ify.transform, derequire, simpleBannerify]
|
||||
};
|
||||
|
||||
var addonsMin = _.merge({}, addons, {
|
||||
var addonsMin = {
|
||||
entries: [
|
||||
'./build/modules/ReactWithAddons.js'
|
||||
],
|
||||
outfile: './build/react-with-addons.min.js',
|
||||
debug: false,
|
||||
standalone: 'React',
|
||||
packageName: 'React (with addons)',
|
||||
transforms: [envify({NODE_ENV: 'production'}), uglifyify],
|
||||
after: [minify, bannerify]
|
||||
});
|
||||
after: [es3ify.transform, derequire, minify, bannerify]
|
||||
};
|
||||
|
||||
var withCodeCoverageLogging = {
|
||||
entries: [
|
||||
|
|
|
|||
|
|
@ -14,50 +14,33 @@ module.exports = function() {
|
|||
// 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 = {
|
||||
entries: entries,
|
||||
debug: config.debug, // sourcemaps
|
||||
standalone: config.standalone // global
|
||||
};
|
||||
|
||||
// TODO: make sure this works, test with this too
|
||||
var bundle = browserify(options);
|
||||
|
||||
config.transforms.forEach(function(transform) {
|
||||
bundle.transform({}, transform);
|
||||
});
|
||||
|
||||
// Actually bundle it up
|
||||
var _this = this;
|
||||
bundle.bundle(options, function(err, src) {
|
||||
bundle.bundle(function(err, buf) {
|
||||
if (err) {
|
||||
grunt.log.error(err);
|
||||
done();
|
||||
return done();
|
||||
}
|
||||
|
||||
var src = buf.toString();
|
||||
|
||||
config.after.forEach(function(fn) {
|
||||
src = fn.call(_this, src);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -32,8 +32,9 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"benchmark": "~1.0.0",
|
||||
"browserify": "^4.1.10",
|
||||
"browserify": "^6.1.0",
|
||||
"coverify": "~1.0.4",
|
||||
"derequire": "^1.2.0",
|
||||
"envify": "^3.0.0",
|
||||
"es3ify": "~0.1.2",
|
||||
"es5-shim": "^4.0.0",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user