From 5c85f3318461531995f0ab3d321d95dc9087b6ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Thu, 3 Jul 2014 17:39:33 -0700 Subject: [PATCH] Custom readme for react-tools Of course this means I can no longer just npm publish from the project root, but I haven't been anyway. --- Gruntfile.js | 4 ++- grunt/tasks/npm-react-tools.js | 46 +++++++++++++++++++++++++++++++--- npm-react-tools/README.md | 23 +++++++++++++++++ package.json | 4 +-- 4 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 npm-react-tools/README.md diff --git a/Gruntfile.js b/Gruntfile.js index f578a63092f97..1ad097a685b80 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -66,7 +66,8 @@ module.exports = function(grunt) { grunt.registerTask('npm-react:release', npmReactTasks.buildRelease); grunt.registerTask('npm-react:pack', npmReactTasks.packRelease); - grunt.registerTask('npm-react-tools:pack', npmReactToolsTasks.pack); + grunt.registerTask('npm-react-tools:release', npmReactToolsTasks.buildRelease); + grunt.registerTask('npm-react-tools:pack', npmReactToolsTasks.packRelease); grunt.registerTask('version-check', versionCheckTask); @@ -220,6 +221,7 @@ module.exports = function(grunt) { 'browserify:addonsMin', 'npm-react:release', 'npm-react:pack', + 'npm-react-tools:release', 'npm-react-tools:pack', 'copy:react_docs', 'compare_size' diff --git a/grunt/tasks/npm-react-tools.js b/grunt/tasks/npm-react-tools.js index de3b2accfde13..2efcd827f7dc1 100644 --- a/grunt/tasks/npm-react-tools.js +++ b/grunt/tasks/npm-react-tools.js @@ -3,20 +3,58 @@ var fs = require('fs'); var grunt = require('grunt'); -function pack() { +var src = 'npm-react-tools'; +var dest = 'build/npm-react-tools/'; + +function buildRelease() { + grunt.file.exists(dest) && grunt.file.delete(dest); + + // read our required files from package.json + var pkgFiles = grunt.config.data.pkg.files; + + // copy all files from src first, includes custom README + var mappings = grunt.file.expandMapping('**/*', dest, {cwd: src}); + + // make sure we also get package.json + pkgFiles.push('package.json'); + + pkgFiles.map(function(file) { + if (grunt.file.isDir(file)) { + mappings = mappings.concat(grunt.file.expandMapping(file + '**/*', dest)) + } else { + mappings.push({src: [file], dest: dest + file}) + } + }); + + mappings.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); + } + }); +} + +function packRelease() { /*jshint validthis:true */ var done = this.async(); var spawnCmd = { cmd: 'npm', - args: ['pack'] + args: ['pack', 'npm-react-tools'], + opts: { + cwd: 'build/' + } }; grunt.util.spawn(spawnCmd, function() { - var src = 'react-tools-' + grunt.config.data.pkg.version + '.tgz'; + var src = 'build/react-tools-' + grunt.config.data.pkg.version + '.tgz'; var dest = 'build/react-tools.tgz'; fs.rename(src, dest, done); }); } module.exports = { - pack: pack + buildRelease: buildRelease, + packRelease: packRelease }; diff --git a/npm-react-tools/README.md b/npm-react-tools/README.md new file mode 100644 index 0000000000000..7c108269d9348 --- /dev/null +++ b/npm-react-tools/README.md @@ -0,0 +1,23 @@ +# react-tools + +This package compliments the usage of React. It ships with tools that are often used in conjunction. + +## JSX + +This package installs a `jsx` executable that can be used to transform JSX into vanilla JS. This is often used as part of a build step. This transform is also exposed as an API. + +## Usage + +### Command Line + +```sh +jsx input > output +``` + +### API + +```js +var reactTools = require('react-tools'); + +reactTools.transform(string, options); +``` diff --git a/package.json b/package.json index 46967ab749605..08ea0f9294c25 100644 --- a/package.json +++ b/package.json @@ -17,12 +17,10 @@ } ], "files": [ - "README.md", "main.js", "bin/jsx", "src/", - "vendor/fbtransform/", - "vendor/constants.js" + "vendor/fbtransform/" ], "main": "main.js", "bin": {