Add React Native Modules to module map + fix fbjs

Our module rewrite whitelist needs to ignore providesModule files
that are going to be required from the global React Native
environment.

We also need to add ReactDOM to providesModule since we removed it
from React Native.
This commit is contained in:
Sebastian Markbage 2016-03-24 22:55:58 -07:00
parent caa6abaecf
commit 240dfae28c
12 changed files with 46 additions and 22 deletions

View File

@ -20,6 +20,7 @@ var paths = {
react: {
src: [
'src/**/*.js',
'!src/**/__benchmarks__/**/*.js',
'!src/**/__tests__/**/*.js',
'!src/**/__mocks__/**/*.js',
'!src/shared/vendor/**/*.js',
@ -28,17 +29,36 @@ var paths = {
},
};
var fbjsModuleMap = require('fbjs/module-map');
var moduleMap = {};
for (var key in fbjsModuleMap) {
moduleMap[key] = fbjsModuleMap[key];
}
var whiteListNames = [
'deepDiffer',
'deepFreezeAndThrowOnMutationInDev',
'flattenStyle',
'InitializeJavaScriptAppEngine',
'InteractionManager',
'JSTimersExecution',
'merge',
'Platform',
'RCTEventEmitter',
'RCTLog',
'TextInputState',
'UIManager',
'View',
];
whiteListNames.forEach(function(name) {
moduleMap[name] = name;
});
moduleMap['object-assign'] = 'object-assign';
var babelOpts = {
plugins: [
[babelPluginModules, {
map: Object.assign(
{},
require('fbjs/module-map'),
{
'object-assign': 'object-assign',
}
),
}],
[babelPluginModules, { map: moduleMap }],
],
};

View File

@ -1,3 +1,7 @@
/**
* @providesModule ReactDOM
*/
'use strict';
var ReactUpdates = require('./ReactUpdates');

View File

@ -4,7 +4,7 @@
var ReactNativeTagHandles = require('ReactNativeTagHandles');
var invariant = require('fbjs/lib/invariant');
var invariant = require('invariant');
var UniversalWorkerNodeHandle = {
getRootNodeID: function(nodeHandle) {

View File

@ -16,7 +16,7 @@ var SyntheticEvent = require('SyntheticEvent');
var UIManager = require('UIManager');
var merge = require('merge');
var warning = require('fbjs/lib/warning');
var warning = require('warning');
var customBubblingEventTypes = UIManager.customBubblingEventTypes;
var customDirectEventTypes = UIManager.customDirectEventTypes;

View File

@ -16,7 +16,7 @@ var TextInputState = require('TextInputState');
var UIManager = require('UIManager');
var findNodeHandle = require('findNodeHandle');
var invariant = require('fbjs/lib/invariant');
var invariant = require('invariant');
type MeasureOnSuccessCallback = (
x: number,

View File

@ -19,8 +19,8 @@ var ReactMultiChild = require('ReactMultiChild');
var UIManager = require('UIManager');
var deepFreezeAndThrowOnMutationInDev = require('deepFreezeAndThrowOnMutationInDev');
var invariant = require('fbjs/lib/invariant');
var warning = require('fbjs/lib/warning');
var invariant = require('invariant');
var warning = require('warning');
var registrationNames = ReactNativeEventEmitter.registrationNames;
var putListener = ReactNativeEventEmitter.putListener;

View File

@ -38,7 +38,7 @@ var ReactUpdates = require('ReactUpdates');
var ResponderEventPlugin = require('ResponderEventPlugin');
var UniversalWorkerNodeHandle = require('UniversalWorkerNodeHandle');
var invariant = require('fbjs/lib/invariant');
var invariant = require('invariant');
// Just to ensure this gets packaged, since its only caller is from Native.
require('RCTEventEmitter');

View File

@ -18,7 +18,7 @@ var NodeHandle = require('NodeHandle');
var EventConstants = require('EventConstants');
var merge = require('merge');
var warning = require('fbjs/lib/warning');
var warning = require('warning');
var topLevelTypes = EventConstants.topLevelTypes;

View File

@ -19,7 +19,7 @@ var ReactUpdateQueue = require('ReactUpdateQueue');
var ReactUpdates = require('ReactUpdates');
var UIManager = require('UIManager');
var emptyObject = require('fbjs/lib/emptyObject');
var emptyObject = require('emptyObject');
var instantiateReactComponent = require('instantiateReactComponent');
var shouldUpdateReactComponent = require('shouldUpdateReactComponent');

View File

@ -11,8 +11,8 @@
*/
'use strict';
var invariant = require('fbjs/lib/invariant');
var warning = require('fbjs/lib/warning');
var invariant = require('invariant');
var warning = require('warning');
/**
* Keeps track of allocating and associating native "tags" which are numeric,

View File

@ -14,7 +14,7 @@
var ReactNativeTagHandles = require('ReactNativeTagHandles');
var UIManager = require('UIManager');
var invariant = require('fbjs/lib/invariant');
var invariant = require('invariant');
var ReactNativeTextComponent = function(props) {
// This constructor and its argument is currently used by mocks.

View File

@ -16,8 +16,8 @@ var ReactCurrentOwner = require('ReactCurrentOwner');
var ReactInstanceMap = require('ReactInstanceMap');
var ReactNativeTagHandles = require('ReactNativeTagHandles');
var invariant = require('fbjs/lib/invariant');
var warning = require('fbjs/lib/warning');
var invariant = require('invariant');
var warning = require('warning');
/**
* ReactNative vs ReactWeb