Breaking change: Move `bundle` to `private-cli`

Summary: @​public

We need to start using the `private-cli` for the new asset system. Note this is a breaking change! People will have to upgrade their workflows/scripts to start using the new cli. Otherwise we'd need to build a thin adapter that is aware of both APIs which is something we;d like to avoid. The major API changes are:
  - API is now `entry-file` based instead of `url` based.
  - /s/--out/--bundle-output
  - /s/--out/--sourcemap-output

Also these parameters have no longer default values, you need to specify them. For instance, if you want to generate the sourcemaps you need to pass in the `--sourcemap-output` option

Lastly, additional project roots or asset roots need to be specified on the `rn-cli.config.js`.

Reviewed By: @frantic

Differential Revision: D2533877

fb-gh-sync-id: a45f9095fdf9442a9106ea7bb6a6b7f651d25273
This commit is contained in:
Martín Bigio 2015-10-13 10:44:00 -07:00 коммит произвёл facebook-github-bot-9
Родитель 793c3564ff
Коммит a102e6f587
7 изменённых файлов: 27 добавлений и 18 удалений

10
breaking-changes.md Normal file
Просмотреть файл

@ -0,0 +1,10 @@
# Breaking Changes
## 0.14
- D2530161: Need to introduce rn-cli.config.js for existing projects
- D2533877: `react-native bundle` API changes:
- API is now `entry-file <path>` based instead of url based.
- Need to specify which platform you're bundling for `--platform <ios|android>`.
- Option `--out` has been renamed for `--bundle-output`.
- Source maps are no longer automatically generated. Need to specify `--sourcemap-output <path>` option to indicate where to put the source maps.

Просмотреть файл

@ -1,3 +0,0 @@
0.14:
- D2530161: Need to introduce rn-cli.config.js for existing projects

6
cli.js
Просмотреть файл

@ -1,4 +1,4 @@
/**
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@ -8,4 +8,8 @@
*/
'use strict';
require('./packager/babelRegisterOnly')([
/private-cli\/src/
]);
module.exports = require('./local-cli/cli.js');

Просмотреть файл

@ -4,13 +4,13 @@
'use strict';
var bundle = require('../private-cli/src/bundle/bundle');
var bundle_DEPRECATED = require('./bundle.js');
var Config = require('../private-cli/src/util/Config');
var fs = require('fs');
var spawn = require('child_process').spawn;
var path = require('path');
var generateAndroid = require('./generate-android.js');
var init = require('./init.js');
var install = require('./install.js');
var bundle = require('./bundle.js');
var newLibrary = require('./new-library.js');
var runAndroid = require('./run-android.js');
var runPackager = require('./run-packager.js');
@ -51,7 +51,8 @@ function run() {
install.init();
break;
case 'bundle':
bundle.init(args);
bundle(args, Config.get(__dirname)).done();
// bundle_DEPRECATED.init(args);
break;
case 'new-library':
newLibrary.init(args);

Просмотреть файл

@ -4,23 +4,20 @@ var blacklist = require('./node_modules/react-native/packager/blacklist');
var config = {
getProjectRoots() {
return this._getRoots();
return [__dirname];
},
getAssetRoots() {
return this._getRoots();
// speficy where to look for assets
return [];
},
getBlacklistRE() {
return blacklist('');
getBlacklistRE(platform) {
return blacklist(platform);
},
getTransformModulePath() {
return require.resolve('./node_modules/react-native/packager/transformer');
},
_getRoots() {
return [__dirname];
}
};

Просмотреть файл

@ -63,7 +63,7 @@ function _bundle(argv, config, resolve, reject) {
const options = {
projectRoots: config.getProjectRoots(),
assetRoots: config.getAssetRoots(),
blacklistRE: config.getBlacklistRE(),
blacklistRE: config.getBlacklistRE(args.platform),
transformModulePath: config.getTransformModulePath(),
};

Просмотреть файл

@ -50,7 +50,7 @@ function _dependencies(argv, config, resolve, reject) {
const packageOpts = {
projectRoots: config.getProjectRoots(),
assetRoots: config.getAssetRoots(),
blacklistRE: config.getBlacklistRE(),
blacklistRE: config.getBlacklistRE(args.platform),
transformModulePath: config.getTransformModulePath(),
};