Skip to content

Commit f7d5c4f

Browse files
committed
Actually build react-dom file with the build
1 parent 09432e0 commit f7d5c4f

File tree

5 files changed

+60
-0
lines changed

5 files changed

+60
-0
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ packages/react-codemod/test/
1616
packages/react-codemod/scripts/
1717
packages/react-codemod/build/
1818
packages/react-codemod/node_modules/
19+
vendor/react-dom.js

Gruntfile.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ module.exports = function(grunt) {
107107
'build-modules',
108108
'npm-react:release',
109109
]);
110+
grunt.registerTask('build:react-dom', require('./grunt/tasks/react-dom'));
110111

111112
grunt.registerTask('test', ['jest']);
112113
grunt.registerTask('npm:test', ['build', 'npm:pack']);
@@ -124,6 +125,7 @@ module.exports = function(grunt) {
124125
'browserify:addons',
125126
'browserify:min',
126127
'browserify:addonsMin',
128+
'build:react-dom',
127129
'npm-react:release',
128130
'npm-react:pack',
129131
'npm-react-dom:pack',

grunt/tasks/react-dom.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'use strict';
2+
3+
var fs = require('fs');
4+
var grunt = require('grunt');
5+
var UglifyJS = require('uglify-js');
6+
7+
var LICENSE_TEMPLATE =
8+
fs.readFileSync('./grunt/data/header-template-extended.txt', 'utf-8');
9+
10+
module.exports = function() {
11+
var templateData = {
12+
package: 'ReactDOM',
13+
version: grunt.config.data.pkg.version,
14+
};
15+
var header = grunt.template.process(
16+
LICENSE_TEMPLATE,
17+
{data: templateData}
18+
);
19+
grunt.file.copy('vendor/react-dom.js', 'build/react-dom.js', {
20+
process: function(src) {
21+
return header + UglifyJS.minify(src, {fromString: true}).code;
22+
},
23+
});
24+
};

src/React.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,6 @@ assign(React, {
6464
),
6565
});
6666

67+
React.__sekret_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM;
68+
6769
module.exports = React;

vendor/react-dom.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Based off https://github.com/ForbesLindesay/umd/blob/master/template.js
2+
;(function(f) {
3+
// CommonJS
4+
if (typeof exports === "object" && typeof module !== "undefined") {
5+
module.exports = f(require('react'));
6+
7+
// RequireJS
8+
} else if (typeof define === "function" && define.amd) {
9+
define(['react'], f);
10+
11+
// <script>
12+
} else {
13+
var g
14+
if (typeof window !== "undefined") {
15+
g = window;
16+
} else if (typeof global !== "undefined") {
17+
g = global;
18+
} else if (typeof self !== "undefined") {
19+
g = self;
20+
} else {
21+
// works providing we're not in "use strict";
22+
// needed for Java 8 Nashorn
23+
// seee https://github.com/facebook/react/issues/3037
24+
g = this;
25+
}
26+
g.ReactDOM = f(g.React);
27+
}
28+
29+
})(function(React) {
30+
return React.__sekret_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
31+
});

0 commit comments

Comments
 (0)