mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
300 lines
7.4 KiB
JavaScript
300 lines
7.4 KiB
JavaScript
'use strict';
|
|
|
|
const devExpressionWithCodes = require('../error-codes/dev-expression-with-codes');
|
|
|
|
const bundleTypes = {
|
|
UMD_DEV: 'UMD_DEV',
|
|
UMD_PROD: 'UMD_PROD',
|
|
NODE_DEV: 'NODE_DEV',
|
|
NODE_PROD: 'NODE_PROD',
|
|
FB: 'FB',
|
|
RN: 'RN',
|
|
};
|
|
|
|
const { UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB, RN } = bundleTypes;
|
|
|
|
const babelOptsReact = {
|
|
exclude: 'node_modules/**',
|
|
plugins: [
|
|
devExpressionWithCodes, // this pass has to run before `rewrite-modules`
|
|
],
|
|
};
|
|
|
|
const babelOptsReactART = Object.assign({}, babelOptsReact, {
|
|
// Include JSX
|
|
presets: [require.resolve('babel-preset-react')],
|
|
});
|
|
|
|
const bundles = [
|
|
/******* Isomorphic *******/
|
|
{
|
|
babelOpts: babelOptsReact,
|
|
bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
moduleName: 'React',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/umd/ReactUMDEntry.js',
|
|
externals: [],
|
|
fbEntry: 'src/fb/ReactFBEntry.js',
|
|
hasteName: 'React-build',
|
|
isRenderer: false,
|
|
name: 'react',
|
|
paths: [
|
|
'src/umd/ReactUMDEntry.js',
|
|
'src/umd/ReactWithAddonsUMDEntry.js',
|
|
'src/umd/shims/**/*.js',
|
|
|
|
'src/isomorphic/**/*.js',
|
|
'src/addons/**/*.js',
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
|
|
/******* React DOM *******/
|
|
{
|
|
babelOpts: babelOptsReact,
|
|
bundleTypes: [FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
globals: {
|
|
'react': 'React',
|
|
},
|
|
moduleName: 'ReactDOM',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/umd/ReactDOMUMDEntry.js',
|
|
externals: [],
|
|
fbEntry: 'src/fb/ReactDOMFBEntry.js',
|
|
hasteName: 'ReactDOMStack-build',
|
|
isRenderer: true,
|
|
name: 'react-dom-stack',
|
|
paths: [
|
|
'src/umd/ReactDOMUMDEntry.js',
|
|
|
|
'src/renderers/dom/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM.
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
{
|
|
babelOpts: babelOptsReact,
|
|
bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
globals: {
|
|
'react': 'React',
|
|
},
|
|
moduleName: 'ReactDOM',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/renderers/dom/fiber/ReactDOMFiber.js',
|
|
externals: [],
|
|
fbEntry: 'src/fb/ReactDOMFiberFBEntry.js',
|
|
hasteName: 'ReactDOMFiber-build',
|
|
isRenderer: true,
|
|
name: 'react-dom',
|
|
paths: [
|
|
'src/renderers/dom/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM.
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
|
|
/******* React DOM Server *******/
|
|
{
|
|
babelOpts: babelOptsReact,
|
|
// TODO: deal with the Node version of react-dom-server package
|
|
bundleTypes: [UMD_DEV, UMD_PROD, FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
globals: {
|
|
'react': 'React',
|
|
},
|
|
moduleName: 'ReactDOMServer',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/umd/ReactDOMServerUMDEntry.js',
|
|
externals: [],
|
|
fbEntry: 'src/umd/ReactDOMServerUMDEntry.js',
|
|
hasteName: 'ReactDOMServerStack',
|
|
isRenderer: true,
|
|
// TODO: this is taken. Do we change the build task
|
|
// to understand react-dom/server?
|
|
name: 'react-dom-server',
|
|
paths: [
|
|
'src/umd/ReactDOMServerUMDEntry.js',
|
|
|
|
'src/renderers/dom/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
// TODO: there is no Fiber version of ReactDOMServer.
|
|
|
|
/******* React ART *******/
|
|
{
|
|
babelOpts: babelOptsReactART,
|
|
// TODO: we merge react-art repo into this repo so the NODE_DEV and NODE_PROD
|
|
// builds sync up to the building of the package directories
|
|
bundleTypes: [FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
globals: {
|
|
'react': 'React',
|
|
},
|
|
moduleName: 'ReactART',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/renderers/art/ReactARTStack.js',
|
|
externals: [
|
|
'art/modes/current',
|
|
'art/modes/fast-noSideEffects',
|
|
'art/core/transform',
|
|
],
|
|
fbEntry: 'src/renderers/art/ReactARTStack.js',
|
|
hasteName: 'ReactARTStack-build',
|
|
isRenderer: true,
|
|
name: 'react-art',
|
|
nodePackageName: 'react-art',
|
|
paths: [
|
|
// TODO: it relies on ReactDOMFrameScheduling. Need to move to shared/?
|
|
'src/renderers/dom/**/*.js',
|
|
'src/renderers/art/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
{
|
|
babelOpts: babelOptsReactART,
|
|
// TODO: we merge react-art repo into this repo so the NODE_DEV and NODE_PROD
|
|
// builds sync up to the building of the package directories
|
|
bundleTypes: [UMD_DEV, UMD_PROD, FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
globals: {
|
|
'react': 'React',
|
|
},
|
|
moduleName: 'ReactART',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/renderers/art/ReactARTFiber.js',
|
|
externals: [
|
|
'art/modes/current',
|
|
'art/modes/fast-noSideEffects',
|
|
'art/core/transform',
|
|
],
|
|
fbEntry: 'src/renderers/art/ReactARTFiber.js',
|
|
hasteName: 'ReactARTFiber-build',
|
|
isRenderer: true,
|
|
name: 'react-art',
|
|
paths: [
|
|
// TODO: it relies on ReactDOMFrameScheduling. Need to move to shared/?
|
|
'src/renderers/dom/**/*.js',
|
|
'src/renderers/art/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
|
|
/******* React Native *******/
|
|
{
|
|
babelOpts: babelOptsReact,
|
|
bundleTypes: [RN],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
moduleName: 'ReactNative',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/renderers/native/ReactNative.js',
|
|
externals: [
|
|
'InitializeCore',
|
|
'RCTEventEmitter',
|
|
'UIManager',
|
|
'deepDiffer',
|
|
'flattenStyle',
|
|
'TextInputState',
|
|
'deepFreezeAndThrowOnMutationInDev',
|
|
],
|
|
hasteName: 'ReactNative',
|
|
isRenderer: true,
|
|
name: 'react-native-renderer',
|
|
paths: [
|
|
'src/renderers/native/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
|
|
/******* React Test Renderer *******/
|
|
{
|
|
babelOpts: babelOptsReact,
|
|
bundleTypes: [NODE_DEV, FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
moduleName: 'ReactTestRenderer',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/renderers/testing/ReactTestRendererFiber',
|
|
externals: [],
|
|
fbEntry: 'src/renderers/testing/ReactTestRendererFiber',
|
|
hasteName: 'ReactTestRendererFiber-build',
|
|
isRenderer: true,
|
|
name: 'react-test-renderer',
|
|
paths: [
|
|
'src/renderers/native/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
'src/renderers/testing/**/*.js',
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
|
|
{
|
|
babelOpts: babelOptsReact,
|
|
bundleTypes: [FB],
|
|
config: {
|
|
destDir: 'build/rollup/',
|
|
moduleName: 'ReactTestRenderer',
|
|
sourceMap: false,
|
|
},
|
|
entry: 'src/renderers/testing/stack/ReactTestRendererStack',
|
|
externals: [],
|
|
fbEntry: 'src/renderers/testing/stack/ReactTestRendererStack',
|
|
hasteName: 'ReactTestRendererStack-build',
|
|
isRenderer: true,
|
|
name: 'react-test-renderer-stack',
|
|
paths: [
|
|
'src/renderers/native/**/*.js',
|
|
'src/renderers/shared/**/*.js',
|
|
'src/renderers/testing/**/*.js',
|
|
|
|
'src/ReactVersion.js',
|
|
'src/shared/**/*.js',
|
|
],
|
|
},
|
|
];
|
|
|
|
module.exports = {
|
|
bundleTypes,
|
|
bundles,
|
|
};
|