diff --git a/grunt/config/jsx/debug.json b/grunt/config/jsx/debug.json deleted file mode 100644 index 1596c562e8..0000000000 --- a/grunt/config/jsx/debug.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "debug": true, - "constants": { - "__DEV__": true - } -} diff --git a/grunt/config/jsx/jsx.js b/grunt/config/jsx/jsx.js index 72719a6bad..02c220b5da 100644 --- a/grunt/config/jsx/jsx.js +++ b/grunt/config/jsx/jsx.js @@ -1,13 +1,25 @@ 'use strict'; +var grunt = require('grunt'); + var rootIDs = [ "React", "ReactTransitionGroup" ]; +var getDebugConfig = function() { + return { + "debug": true, + "constants": { + "__VERSION__": grunt.config.data.pkg.version, + "__DEV__": true + } + }; +}; + var debug = { rootIDs: rootIDs, - configFile: "grunt/config/jsx/debug.json", + getConfig: getDebugConfig, sourceDir: "src", outputDir: "build/modules" }; @@ -16,7 +28,7 @@ var jasmine = { rootIDs: [ "all" ], - configFile: debug.configFile, + getConfig: getDebugConfig, sourceDir: "vendor/jasmine", outputDir: "build/jasmine" }; @@ -26,18 +38,37 @@ var test = { "test/all.js", "**/__tests__/*.js" ]), - configFile: "grunt/config/jsx/test.json", + getConfig: function() { + return { + "debug": true, + "mocking": true, + "constants": { + "__VERSION__": grunt.config.data.pkg.version, + "__DEV__": true + } + }; + }, sourceDir: "src", outputDir: "build/modules" }; + var release = { rootIDs: rootIDs, - configFile: "grunt/config/jsx/release.json", + getConfig: function() { + return { + "debug": false, + "constants": { + "__VERSION__": grunt.config.data.pkg.version, + "__DEV__": false + } + }; + }, sourceDir: "src", outputDir: "build/modules" }; + module.exports = { debug: debug, jasmine: jasmine, diff --git a/grunt/config/jsx/release.json b/grunt/config/jsx/release.json deleted file mode 100644 index 1dd48f20fd..0000000000 --- a/grunt/config/jsx/release.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "debug": false, - "constants": { - "__DEV__": false - } -} diff --git a/grunt/config/jsx/test.json b/grunt/config/jsx/test.json deleted file mode 100644 index e897023aab..0000000000 --- a/grunt/config/jsx/test.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "debug": true, - "mocking": true, - "constants": { - "__DEV__": true - } -} diff --git a/grunt/tasks/jsx.js b/grunt/tasks/jsx.js index b84be32cb4..8d777d0069 100644 --- a/grunt/tasks/jsx.js +++ b/grunt/tasks/jsx.js @@ -24,7 +24,7 @@ module.exports = function() { }); args.push.apply(args, rootIDs); - args.push("--config", config.configFile); + args.push("--config" /* from stdin */); var child = spawn({ cmd: "bin/jsx-internal", @@ -38,6 +38,9 @@ module.exports = function() { } }); + child.stdin.write(JSON.stringify(config.getConfig())); + child.stdin.end(); + child.stdout.pipe(process.stdout); child.stderr.pipe(process.stderr); }; diff --git a/src/.jshintrc b/src/.jshintrc index 60ff8d05c2..f098432e6d 100644 --- a/src/.jshintrc +++ b/src/.jshintrc @@ -19,6 +19,7 @@ "unused": "vars", "globals": { + "__VERSION__": false, "__DEV__": false, "require": false, "module": false, diff --git a/src/core/React.js b/src/core/React.js index 80e21e806c..5e7aeaf3ac 100644 --- a/src/core/React.js +++ b/src/core/React.js @@ -50,4 +50,8 @@ var React = { isValidComponent: ReactComponent.isValidComponent }; +// Version exists only in the open-source version of React, not in Facebook's +// internal version. +React.version = __VERSION__; + module.exports = React;