mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
react-core npm module
This commit is contained in:
26
Gruntfile.js
26
Gruntfile.js
@@ -9,6 +9,7 @@ var webdriverJasmineTasks = require('./grunt/tasks/webdriver-jasmine');
|
||||
var sauceTunnelTask = require('./grunt/tasks/sauce-tunnel');
|
||||
var npmTask = require('./grunt/tasks/npm');
|
||||
var releaseTasks = require('./grunt/tasks/release');
|
||||
var reactCoreTasks = require('./grunt/tasks/react-core');
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
@@ -51,17 +52,33 @@ module.exports = function(grunt) {
|
||||
|
||||
grunt.registerMultiTask('npm', npmTask);
|
||||
|
||||
grunt.registerTask('react-core:release', reactCoreTasks.buildRelease);
|
||||
|
||||
// Check that the version we're exporting is the same one we expect in the
|
||||
// package. This is not an ideal way to do this, but makes sure that we keep
|
||||
// them in sync.
|
||||
var reactVersionExp = /\bReact\.version\s*=\s*['"]([^'"]+)['"];/;
|
||||
grunt.registerTask('version-check', function() {
|
||||
var version = reactVersionExp.exec(
|
||||
var reactVersion = reactVersionExp.exec(
|
||||
grunt.file.read('./build/modules/React.js')
|
||||
)[1];
|
||||
var expectedVersion = grunt.config.data.pkg.version;
|
||||
if (version !== expectedVersion) {
|
||||
grunt.log.error('Versions do not match. Expected %s, saw %s', expectedVersion, version);
|
||||
var reactCoreVersion = grunt.file.readJSON('./npm-react-core/package.json').version;
|
||||
var reactToolsVersion = grunt.config.data.pkg.version;
|
||||
|
||||
if (reactVersion !== reactToolsVersion) {
|
||||
grunt.log.error(
|
||||
'React version does not match react-tools version. Expected %s, saw %s',
|
||||
reactToolsVersion,
|
||||
reactVersion
|
||||
);
|
||||
return false;
|
||||
}
|
||||
if (reactCoreVersion !== reactToolsVersion) {
|
||||
grunt.log.error(
|
||||
'react-core version does not match react-tools veersion. Expected %s, saw %s',
|
||||
reactToolsVersion,
|
||||
reactCoreVersion
|
||||
);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@@ -81,6 +98,7 @@ module.exports = function(grunt) {
|
||||
'version-check',
|
||||
'populist:test'
|
||||
]);
|
||||
grunt.registerTask('build:react-core', ['version-check', 'jsx:release', 'react-core:release']);
|
||||
|
||||
grunt.registerTask('webdriver-phantomjs', webdriverPhantomJSTask);
|
||||
|
||||
|
||||
47
grunt/tasks/react-core.js
vendored
Normal file
47
grunt/tasks/react-core.js
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
'use strict';
|
||||
|
||||
var grunt = require('grunt');
|
||||
|
||||
var src = 'npm-react-core/';
|
||||
var dest = 'build/react-core/';
|
||||
var modSrc = 'build/modules/';
|
||||
var lib = dest + 'lib/';
|
||||
|
||||
function buildRelease() {
|
||||
// delete build/react-core for fresh start
|
||||
grunt.file.exists(dest) && grunt.file.delete(dest);
|
||||
|
||||
// mkdir -p build/react-core/lib
|
||||
grunt.file.mkdir(lib);
|
||||
|
||||
// Copy everything over
|
||||
// console.log(grunt.file.expandMapping(src + '**/*', dest, {flatten: true}));
|
||||
grunt.file.expandMapping(src + '**/*', dest, {flatten: true}).forEach(function(mapping) {
|
||||
var src = mapping.src[0];
|
||||
var dest = mapping.dest;
|
||||
if (grunt.file.isDir(src)) {
|
||||
grunt.file.mkdir(dest);
|
||||
} else {
|
||||
grunt.file.copy(src, dest);
|
||||
}
|
||||
});
|
||||
|
||||
// copy build/modules/*.js to build/react-core/lib
|
||||
grunt.file.expandMapping(modSrc + '*.js', lib, { flatten: true }).forEach(function(mapping) {
|
||||
grunt.file.copy(mapping.src[0], mapping.dest);
|
||||
});
|
||||
|
||||
// modify build/react-core/package.json to set version ##
|
||||
var pkg = grunt.file.readJSON(dest + 'package.json');
|
||||
pkg.version = grunt.config.data.pkg.version;
|
||||
grunt.file.write(dest + 'package.json', JSON.stringify(pkg, null, 2));
|
||||
}
|
||||
|
||||
function buildDev() {
|
||||
// TODO: same as above except different destination
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
buildRelease: buildRelease,
|
||||
buildDev: buildDev
|
||||
};
|
||||
21
npm-react-core/README.md
Normal file
21
npm-react-core/README.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# react-core
|
||||
|
||||
An npm package to get you immediate access to `React`, without also requiring
|
||||
the JSX transformer. This is especially useful for cases where you want to
|
||||
[`browserify`](https://github.com/substack/node-browserify) your module using
|
||||
`React`.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```js
|
||||
|
||||
// Previously, you might access React with react-tools.
|
||||
var React = require('react-tools').React;
|
||||
|
||||
// Now you can access React directly with react-core.
|
||||
var React = require('react-core');
|
||||
|
||||
// You can also access ReactWithAddons.
|
||||
var React = require('react-core/addons');
|
||||
```
|
||||
|
||||
1
npm-react-core/addons.js
Normal file
1
npm-react-core/addons.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require('./lib/ReactWithAddons');
|
||||
29
npm-react-core/package.json
Normal file
29
npm-react-core/package.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "react-core",
|
||||
"version": "0.6.0-alpha",
|
||||
"keywords": [
|
||||
"react"
|
||||
],
|
||||
"homepage": "https://github.com/facebook/react/tree/master/npm-react-core",
|
||||
"bugs": "https://github.com/facebook/react/issues?labels=react-core",
|
||||
"licenses": [
|
||||
{
|
||||
"type": "Apache-2.0",
|
||||
"url": "http://www.apache.org/licenses/LICENSE-2.0"
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
"README.md",
|
||||
"addons.js",
|
||||
"react.js",
|
||||
"lib/"
|
||||
],
|
||||
"main": "react.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/facebook/react"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
}
|
||||
1
npm-react-core/react.js
vendored
Normal file
1
npm-react-core/react.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require('./lib/React');
|
||||
Reference in New Issue
Block a user