mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 09:35:48 +00:00
c13646fce1
Added bundle script Pipe http response straight to file Used ReactPackager directly, minor fixes Added error handling to fs.writeFile Changed .then to .done
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);
|
|
}
|
|
}
|
|
}
|