Added bundle command using ReactPackager
Added bundle script Pipe http response straight to file Used ReactPackager directly, minor fixes Added error handling to fs.writeFile Changed .then to .done
This commit is contained in:
parent
3e8b41f5b1
commit
c13646fce1
|
@ -29,9 +29,10 @@
|
|||
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/Examples/SampleApp/index.ios.bundle"];
|
||||
|
||||
// OPTION 2
|
||||
// Load from pre-bundled file on disk. To re-generate the static bundle, run
|
||||
// Load from pre-bundled file on disk. To re-generate the static bundle,
|
||||
// from the root of your project directory, run
|
||||
//
|
||||
// $ curl 'http://localhost:8081/Examples/SampleApp/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle
|
||||
// $ react-native bundle
|
||||
//
|
||||
// and uncomment the next following line
|
||||
// jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
var http = require('http');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var chalk = require('chalk');
|
||||
var blacklist = require('../packager/blacklist.js');
|
||||
var ReactPackager = require('../packager/react-packager');
|
||||
|
||||
var OUT_PATH = 'iOS/main.jsbundle';
|
||||
|
||||
function getBundle(flags) {
|
||||
|
||||
var options = {
|
||||
projectRoots: [path.resolve(__dirname, '../../..')],
|
||||
transformModulePath: require.resolve('../packager/transformer.js'),
|
||||
assetRoots: [path.resolve(__dirname, '../../..')],
|
||||
cacheVersion: '2',
|
||||
blacklistRE: blacklist('ios')
|
||||
};
|
||||
|
||||
var url = '/index.ios.bundle?dev=' + flags.dev;
|
||||
|
||||
console.log('Building package...');
|
||||
ReactPackager.buildPackageFromUrl(options, url)
|
||||
.done(function(bundle) {
|
||||
console.log('Build complete');
|
||||
fs.writeFile(OUT_PATH, bundle.getSource({
|
||||
inlineSourceMap: false,
|
||||
minify: flags.minify
|
||||
}), function(err) {
|
||||
if (err) {
|
||||
console.log(chalk.red('Error saving bundle to disk'));
|
||||
throw err;
|
||||
} else {
|
||||
console.log('Successfully saved bundle to ' + OUT_PATH);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function showHelp() {
|
||||
console.log([
|
||||
'Usage: react-native bundle [options]',
|
||||
'',
|
||||
'Options:',
|
||||
' --dev\t\tsets DEV flag to true',
|
||||
' --minify\tminify js bundle'
|
||||
].join('\n'));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
init: function(args) {
|
||||
var flags = {
|
||||
help: args.indexOf('--help') !== -1,
|
||||
dev: args.indexOf('--dev') !== -1,
|
||||
minify: args.indexOf('--minify') !== -1
|
||||
}
|
||||
|
||||
if (flags.help) {
|
||||
showHelp();
|
||||
} else {
|
||||
getBundle(flags);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,6 +7,7 @@
|
|||
var spawn = require('child_process').spawn;
|
||||
var path = require('path');
|
||||
var install = require('./install.js');
|
||||
var bundle = require('./bundle.js');
|
||||
|
||||
function printUsage() {
|
||||
console.log([
|
||||
|
@ -14,7 +15,8 @@ function printUsage() {
|
|||
'',
|
||||
'Commands:',
|
||||
' start: starts the webserver',
|
||||
' install: installs npm react components'
|
||||
' install: installs npm react components',
|
||||
' bundle: builds the javascript bundle for offline use'
|
||||
].join('\n'));
|
||||
process.exit(1);
|
||||
}
|
||||
|
@ -36,6 +38,9 @@ function run() {
|
|||
case 'install':
|
||||
install.init();
|
||||
break;
|
||||
case 'bundle':
|
||||
bundle.init(args);
|
||||
break;
|
||||
default:
|
||||
console.error('Command `%s` unrecognized', args[0]);
|
||||
printUsage();
|
||||
|
|
Loading…
Reference in New Issue