Skip to content

Commit ff542de

Browse files
committed
Build ReactDOM browser builds into react-dom/dist
1 parent 88cdc27 commit ff542de

File tree

3 files changed

+46
-6
lines changed

3 files changed

+46
-6
lines changed

Gruntfile.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ module.exports = function(grunt) {
7272
grunt.registerTask('npm-react:pack', npmReactTasks.packRelease);
7373

7474
var npmReactDOMTasks = require('./grunt/tasks/npm-react-dom');
75+
grunt.registerTask('npm-react-dom:release', npmReactDOMTasks.buildRelease);
7576
grunt.registerTask('npm-react-dom:pack', npmReactDOMTasks.packRelease);
7677

7778
var npmReactAddonsTasks = require('./grunt/tasks/npm-react-addons');
@@ -123,6 +124,7 @@ module.exports = function(grunt) {
123124
'build:react-dom',
124125
'npm-react:release',
125126
'npm-react:pack',
127+
'npm-react-dom:release',
126128
'npm-react-dom:pack',
127129
'npm-react-addons:release',
128130
'npm-react-addons:pack',

grunt/tasks/npm-react-dom.js

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,59 @@
33
var fs = require('fs');
44
var grunt = require('grunt');
55

6+
var src = 'packages/react-dom/';
7+
var dest = 'build/packages/react-dom/';
8+
var dist = dest + 'dist/';
9+
var distFiles = [
10+
'react-dom.js',
11+
'react-dom.min.js',
12+
];
13+
14+
function buildRelease() {
15+
if (grunt.file.exists(dest)) {
16+
grunt.file.delete(dest);
17+
}
18+
19+
// Copy to build/packages/react-dom
20+
var mappings = [].concat(
21+
grunt.file.expandMapping('**/*', dest, {cwd: src})
22+
);
23+
mappings.forEach(function(mapping) {
24+
var mappingSrc = mapping.src[0];
25+
var mappingDest = mapping.dest;
26+
if (grunt.file.isDir(mappingSrc)) {
27+
grunt.file.mkdir(mappingDest);
28+
} else {
29+
grunt.file.copy(mappingSrc, mappingDest);
30+
}
31+
});
32+
33+
// Make built source available inside npm package
34+
grunt.file.mkdir(dist);
35+
distFiles.forEach(function(file) {
36+
grunt.file.copy('build/' + file, dist + file);
37+
});
38+
}
39+
640
function packRelease() {
741
var done = this.async();
842
var spawnCmd = {
943
cmd: 'npm',
10-
args: ['pack', 'packages/react-dom'],
44+
args: ['pack', 'react-dom'],
45+
opts: {
46+
cwd: 'build/packages/',
47+
},
1148
};
1249
grunt.util.spawn(spawnCmd, function() {
13-
var buildSrc = 'react-dom-' + grunt.config.data.pkg.version + '.tgz';
14-
var buildDest = 'build/packages/react-dom.tgz';
15-
fs.rename(buildSrc, buildDest, done);
50+
fs.rename(
51+
'build/packages/react-dom-' + grunt.config.data.pkg.version + '.tgz',
52+
'build/packages/react-dom.tgz',
53+
done
54+
);
1655
});
1756
}
1857

1958
module.exports = {
59+
buildRelease: buildRelease,
2060
packRelease: packRelease,
2161
};

grunt/tasks/npm-react.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ var distFiles = [
1313
'react.min.js',
1414
'react-with-addons.js',
1515
'react-with-addons.min.js',
16-
'react-dom.js',
17-
'react-dom.min.js',
1816
];
1917

2018
function buildRelease() {

0 commit comments

Comments
 (0)