From 45c612ed7a56b91f4c1d056c824de54673a2c241 Mon Sep 17 00:00:00 2001 From: Kevin Robinson Date: Tue, 3 Nov 2015 16:23:39 -0500 Subject: [PATCH] Add additional secret property and build for react-dom-server Update eslintrc, travis build and add task to Gruntfile --- .eslintignore | 1 + .travis.yml | 2 ++ Gruntfile.js | 2 ++ grunt/tasks/react-dom-server.js | 27 +++++++++++++++++++++++++++ src/React.js | 1 + vendor/react-dom-server.js | 31 +++++++++++++++++++++++++++++++ 6 files changed, 64 insertions(+) create mode 100644 grunt/tasks/react-dom-server.js create mode 100644 vendor/react-dom-server.js diff --git a/.eslintignore b/.eslintignore index 9800f5e2f0d15..ed0d6978fa234 100644 --- a/.eslintignore +++ b/.eslintignore @@ -13,3 +13,4 @@ examples/ build/ scripts/bench/bench-*.js vendor/react-dom.js +vendor/react-dom-server.js \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 007320ce562b1..c1e782d3d7164 100644 --- a/.travis.yml +++ b/.travis.yml @@ -54,6 +54,8 @@ script: -F "react-with-addons.min=@build/react-with-addons.min.js" \ -F "react-dom=@build/react-dom.js" \ -F "react-dom.min=@build/react-dom.min.js" \ + -F "react-dom-server=@build/react-dom-server.js" + -F "react-dom-server.min=@build/react-dom-server.min.js" -F "npm-react=@build/packages/react.tgz" \ -F "npm-react-dom=@build/packages/react-dom.tgz" \ -F "commit=$TRAVIS_COMMIT" \ diff --git a/Gruntfile.js b/Gruntfile.js index 570e18f70931f..2d3fd15d956ab 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -112,6 +112,7 @@ module.exports = function(grunt) { 'npm-react:release', ]); grunt.registerTask('build:react-dom', require('./grunt/tasks/react-dom')); + grunt.registerTask('build:react-dom-server', require('./grunt/tasks/react-dom-server')); grunt.registerTask('test', ['jest']); grunt.registerTask('npm:test', ['build', 'npm:pack']); @@ -129,6 +130,7 @@ module.exports = function(grunt) { 'browserify:min', 'browserify:addonsMin', 'build:react-dom', + 'build:react-dom-server', 'npm-react:release', 'npm-react:pack', 'npm-react-dom:release', diff --git a/grunt/tasks/react-dom-server.js b/grunt/tasks/react-dom-server.js new file mode 100644 index 0000000000000..49f620aa150f1 --- /dev/null +++ b/grunt/tasks/react-dom-server.js @@ -0,0 +1,27 @@ +'use strict'; + +var grunt = require('grunt'); +var UglifyJS = require('uglify-js'); + +var LICENSE_TEMPLATE = + grunt.file.read('./grunt/data/header-template-extended.txt'); + +module.exports = function() { + var templateData = { + package: 'ReactDOMServer', + version: grunt.config.data.pkg.version, + }; + var header = grunt.template.process( + LICENSE_TEMPLATE, + {data: templateData} + ); + var src = grunt.file.read('vendor/react-dom-server.js'); + grunt.file.write( + 'build/react-dom-server.js', + header + src + ); + grunt.file.write( + 'build/react-dom-server.min.js', + header + UglifyJS.minify(src, {fromString: true}).code + ); +}; diff --git a/src/React.js b/src/React.js index 6e11a3a79b1dc..6ace6c0508425 100644 --- a/src/React.js +++ b/src/React.js @@ -65,5 +65,6 @@ assign(React, { }); React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM; +React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOMServer; module.exports = React; diff --git a/vendor/react-dom-server.js b/vendor/react-dom-server.js new file mode 100644 index 0000000000000..c24756dc4ba71 --- /dev/null +++ b/vendor/react-dom-server.js @@ -0,0 +1,31 @@ +// Based off https://github.com/ForbesLindesay/umd/blob/master/template.js +;(function(f) { + // CommonJS + if (typeof exports === "object" && typeof module !== "undefined") { + module.exports = f(require('react')); + + // RequireJS + } else if (typeof define === "function" && define.amd) { + define(['react'], f); + + //