Build ReactDOM browser builds into react-dom/dist
Paul O’Shannessy committed
Sep 17, 2015 at 12:56 UTC
ff542de59df93a7e33fab229d2b848233ee317da
3 files changed
+46
-6
Gruntfile.js
+2
@@ -72,6 +72,7 @@ module.exports = function(grunt) {
72
grunt.registerTask('npm-react:pack', npmReactTasks.packRelease);
73
74
var npmReactDOMTasks = require('./grunt/tasks/npm-react-dom');
75
+ grunt.registerTask('npm-react-dom:release', npmReactDOMTasks.buildRelease);
76
grunt.registerTask('npm-react-dom:pack', npmReactDOMTasks.packRelease);
77
78
var npmReactAddonsTasks = require('./grunt/tasks/npm-react-addons');
@@ -123,6 +124,7 @@ module.exports = function(grunt) {
124
'build:react-dom',
125
'npm-react:release',
126
'npm-react:pack',
127
+ 'npm-react-dom:release',
128
'npm-react-dom:pack',
129
'npm-react-addons:release',
130
'npm-react-addons:pack',
grunt/tasks/npm-react-dom.js
+44
-4
@@ -3,19 +3,59 @@
3
var fs = require('fs');
4
var grunt = require('grunt');
5
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
+
40
function packRelease() {
41
var done = this.async();
42
var spawnCmd = {
43
cmd: 'npm',
10
- args: ['pack', 'packages/react-dom'],
44
+ args: ['pack', 'react-dom'],
45
+ opts: {
46
+ cwd: 'build/packages/',
47
+ },
48
};
49
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
+ );
55
});
56
}
57
58
module.exports = {
59
+ buildRelease: buildRelease,
60
packRelease: packRelease,
61
};
grunt/tasks/npm-react.js
-2
@@ -13,8 +13,6 @@ var distFiles = [
13
'react.min.js',
14
'react-with-addons.js',
15
'react-with-addons.min.js',
16
- 'react-dom.js',
17
- 'react-dom.min.js',
16
];
17
18
function buildRelease() {