mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
Wrap all non-UMD DEV bundles into a condition (#9969)
* Wrap all non-UMD DEV bundles into a condition * Update header.js * Create header.js
This commit is contained in:
@@ -76,36 +76,43 @@ function getHeaderSanityCheck(bundleType, hasteName) {
|
||||
|
||||
function getBanner(bundleType, hasteName, filename) {
|
||||
switch (bundleType) {
|
||||
// UMDs are not wrapped in conditions.
|
||||
case UMD_DEV:
|
||||
case UMD_PROD:
|
||||
return Header.getUMDHeader(filename, reactVersion);
|
||||
// CommonJS DEV bundle is guarded to help weak dead code elimination.
|
||||
case NODE_DEV:
|
||||
return `'use strict';\n\n\nif (process.env.NODE_ENV !== "production") {\n`;
|
||||
case NODE_PROD:
|
||||
return '';
|
||||
// FB and RN DEV bundles are also guarded.
|
||||
// Additionally, all FB and RN bundles need Haste headers.
|
||||
case FB_DEV:
|
||||
case FB_PROD:
|
||||
case RN_DEV:
|
||||
case RN_PROD:
|
||||
let hasteFinalName = hasteName;
|
||||
switch (bundleType) {
|
||||
case FB_DEV:
|
||||
case RN_DEV:
|
||||
hasteFinalName += '-dev';
|
||||
break;
|
||||
case FB_PROD:
|
||||
case RN_PROD:
|
||||
hasteFinalName += '-prod';
|
||||
break;
|
||||
}
|
||||
const fbDevCode = `\n\n'use strict';\n\n` + `\nif (__DEV__) {\n`;
|
||||
return Header.getProvidesHeader(hasteFinalName, bundleType, fbDevCode);
|
||||
case UMD_DEV:
|
||||
case UMD_PROD:
|
||||
return Header.getUMDHeader(filename, reactVersion);
|
||||
const isDev = bundleType === FB_DEV || bundleType === RN_DEV;
|
||||
const hasteFinalName = hasteName + (isDev ? '-dev' : '-prod');
|
||||
return (
|
||||
Header.getProvidesHeader(hasteFinalName) +
|
||||
(isDev ? `\n\n'use strict';\n\n\nif (__DEV__) {\n` : '')
|
||||
);
|
||||
default:
|
||||
return '';
|
||||
throw new Error('Unknown type.');
|
||||
}
|
||||
}
|
||||
|
||||
function getFooter(bundleType) {
|
||||
if (bundleType === FB_DEV) {
|
||||
return '\n}\n';
|
||||
// Only need a footer if getBanner() has an opening brace.
|
||||
switch (bundleType) {
|
||||
// Non-UMD DEV bundles need conditions to help weak dead code elimination.
|
||||
case NODE_DEV:
|
||||
case FB_DEV:
|
||||
case RN_DEV:
|
||||
return '\n}\n';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function updateBabelConfig(babelOpts, bundleType) {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
const Bundles = require('./bundles');
|
||||
'use strict';
|
||||
|
||||
const FB_DEV = Bundles.bundleTypes.FB_DEV;
|
||||
|
||||
function getProvidesHeader(hasteFinalName, bundleType, fbDevCode) {
|
||||
function getProvidesHeader(hasteFinalName) {
|
||||
return `/**
|
||||
* Copyright 2013-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
@@ -13,7 +11,7 @@ function getProvidesHeader(hasteFinalName, bundleType, fbDevCode) {
|
||||
*
|
||||
* @noflow
|
||||
* @providesModule ${hasteFinalName}
|
||||
*/${bundleType === FB_DEV ? fbDevCode : ''}
|
||||
*/
|
||||
`;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
{
|
||||
"bundleSizes": {
|
||||
"react.development.js (UMD_DEV)": {
|
||||
"size": 71599,
|
||||
"gzip": 18503
|
||||
"size": 71605,
|
||||
"gzip": 18506
|
||||
},
|
||||
"react.production.min.js (UMD_PROD)": {
|
||||
"size": 7585,
|
||||
"gzip": 2999
|
||||
},
|
||||
"react.development.js (NODE_DEV)": {
|
||||
"size": 61813,
|
||||
"gzip": 16088
|
||||
"size": 61884,
|
||||
"gzip": 16131
|
||||
},
|
||||
"react.production.min.js (NODE_PROD)": {
|
||||
"size": 6483,
|
||||
"gzip": 2581
|
||||
},
|
||||
"React-dev.js (FB_DEV)": {
|
||||
"size": 61047,
|
||||
"gzip": 15811
|
||||
"size": 61056,
|
||||
"gzip": 15809
|
||||
},
|
||||
"React-prod.js (FB_PROD)": {
|
||||
"size": 29022,
|
||||
"size": 29031,
|
||||
"gzip": 7690
|
||||
},
|
||||
"react-dom.development.js (UMD_DEV)": {
|
||||
|
||||
Reference in New Issue
Block a user