66 lines
1.6 KiB
JavaScript
66 lines
1.6 KiB
JavaScript
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);
|
|
}
|
|
}
|
|
}
|