@samitouri / QOS-React-2 / commits / 3bae8f5f35

Build react-dom package

Paul O’Shannessy committed Jun 11, 2015 at 14:19 UTC 3bae8f5f35b4f57c3645bb0cca8bd26db87d39f3
7 files changed +126 -22
Gruntfile.js
+4
@@ -72,6 +72,9 @@ module.exports = function(grunt) {
72 grunt.registerTask('npm-react-tools:release', npmReactToolsTasks.buildRelease);
73 grunt.registerTask('npm-react-tools:pack', npmReactToolsTasks.packRelease);
74
75 + var npmReactDOMTasks = require('./grunt/tasks/npm-react-dom');
76 + grunt.registerTask('npm-react-dom:pack', npmReactDOMTasks.packRelease);
77 +
78 var gemReactSourceTasks = require('./grunt/tasks/gem-react-source');
79 grunt.registerTask('gem-react-source:release', gemReactSourceTasks.buildRelease);
80 grunt.registerTask('gem-react-source:pack', gemReactSourceTasks.packRelease);
@@ -224,6 +227,7 @@ module.exports = function(grunt) {
227 'npm-react:pack',
228 'npm-react-tools:release',
229 'npm-react-tools:pack',
230 + 'npm-react-dom:pack',
231 'compare_size',
232 ]);
233
grunt/tasks/npm-react-dom.js new
+21
@@ -0,0 +1,21 @@
1 +'use strict';
2 +
3 +var fs = require('fs');
4 +var grunt = require('grunt');
5 +
6 +function packRelease() {
7 + var done = this.async();
8 + var spawnCmd = {
9 + cmd: 'npm',
10 + args: ['pack', 'npm-react-dom'],
11 + };
12 + grunt.util.spawn(spawnCmd, function() {
13 + var buildSrc = 'react-dom-' + grunt.config.data.pkg.version + '.tgz';
14 + var buildDest = 'build/react-dom.tgz';
15 + fs.rename(buildSrc, buildDest, done);
16 + });
17 +}
18 +
19 +module.exports = {
20 + packRelease: packRelease,
21 +};
grunt/tasks/version-check.js
+24 -22
@@ -2,33 +2,35 @@
2
3 var grunt = require('grunt');
4
5 -
5 // Check that the version we're exporting is the same one we expect in the
6 // package. This is not an ideal way to do this, but makes sure that we keep
7 // them in sync.
8 var reactVersionExp = /\bReact\.version\s*=\s*['"]([^'"]+)['"];/;
9
10 module.exports = function() {
12 - var reactVersion = reactVersionExp.exec(
13 - grunt.file.read('./src/React.js')
14 - )[1];
15 - var npmReactVersion = grunt.file.readJSON('./npm-react/package.json').version;
16 - var reactToolsVersion = grunt.config.data.pkg.version;
11 + var pkgVersion = grunt.config.data.pkg.version;
12 +
13 + var versions = {
14 + 'npm-react/package.json':
15 + grunt.file.readJSON('./npm-react/package.json').version,
16 + 'npm-react-dom/package.json':
17 + grunt.file.readJSON('./npm-react-dom/package.json').version,
18 + 'src/React.js': reactVersionExp.exec(grunt.file.read('./src/React.js'))[1],
19 + };
20
18 - if (reactVersion !== reactToolsVersion) {
19 - grunt.log.error(
20 - 'React version does not match react-tools version. Expected %s, saw %s',
21 - reactToolsVersion,
22 - reactVersion
23 - );
24 - return false;
25 - }
26 - if (npmReactVersion !== reactToolsVersion) {
27 - grunt.log.error(
28 - 'npm-react version does not match react-tools version. Expected %s, saw %s',
29 - reactToolsVersion,
30 - npmReactVersion
31 - );
32 - return false;
33 - }
21 + // Return true (ok) or false (failed)
22 + return Object.keys(versions).reduce(function(prev, name) {
23 + var version = versions[name];
24 + var ok = true;
25 + if (version !== pkgVersion) {
26 + grunt.log.error(
27 + '%s version does not match package.json. Expected %s, saw %s.',
28 + name,
29 + pkgVersion,
30 + version
31 + );
32 + ok = false;
33 + }
34 + return prev && ok;
35 + }, true);
36 };
npm-react-dom/README.md new
+54
@@ -0,0 +1,54 @@
1 +# `react-dom`
2 +
3 +This package serves as the entry point of the DOM-related rendering paths. It is intended to be paired with the isomorphic React, which will be shipped as `react` to npm.
4 +
5 +## Installation
6 +
7 +```sh
8 +npm install react react-dom
9 +```
10 +
11 +## Usage
12 +
13 +### In the browser
14 +
15 +```js
16 +var React = require('react');
17 +var ReactDOM = require('react-dom');
18 +
19 +class MyComponent extends React.Component {
20 + render() {
21 + return <div>Hello World</div>;
22 + }
23 +}
24 +
25 +ReactDOM.render(<MyComponent />, node);
26 +```
27 +
28 +### On the server
29 +
30 +```js
31 +var React = require('react');
32 +var ReactDOMServer = require('react-dom/server');
33 +
34 +class MyComponent extends React.Component {
35 + render() {
36 + return <div>Hello World</div>;
37 + }
38 +}
39 +
40 +ReactDOMServer.renderToString(<MyComponent />);
41 +```
42 +
43 +## API
44 +
45 +### `react-dom`
46 +
47 +- `findDOMNode`
48 +- `render`
49 +- `unmountComponentAtNode`
50 +
51 +### `react-dom/server`
52 +
53 +- `renderToString`
54 +- `renderToStaticMarkup`
npm-react-dom/index.js new
+1
@@ -0,0 +1 @@
1 +module.exports = require('react/lib/ReactDOMClient');
npm-react-dom/package.json new
+21
@@ -0,0 +1,21 @@
1 +{
2 + "name": "react-dom",
3 + "version": "0.14.0-alpha3",
4 + "description": "React package for working with the DOM.",
5 + "main": "index.js",
6 + "repository": {
7 + "type": "git",
8 + "url": "git+https://github.com/facebook/react.git"
9 + },
10 + "keywords": [
11 + "react"
12 + ],
13 + "license": "BSD-3-Clause",
14 + "bugs": {
15 + "url": "https://github.com/facebook/react/issues"
16 + },
17 + "homepage": "https://github.com/facebook/react/tree/master/npm-react-dom",
18 + "dependencies": {
19 + "react": "^0.14.0-alpha3"
20 + }
21 +}
npm-react-dom/server.js new
+1
@@ -0,0 +1 @@
1 +module.exports = require('react/lib/ReactDOMServer');