PropTypes:对包大小的影响?

问题描述 投票:1回答:3

简单的问题:

PropTypes是否会增加运输包的大小并且仅在开发模式下显示?

reactjs react-proptypes
3个回答
2
投票

这取决于你如何建立你的项目。如果您使用webpack并将process.env.NODE_ENV设置为production而不是PropTypes不包括对您的包的完整类型检查

您可以查看source code,以了解每个环境中捆绑包含的内容。

if (process.env.NODE_ENV !== 'production') {
  var ReactIs = require('react-is');

  // By explicitly using `prop-types` you are opting into new development behavior.
  var throwOnDirectAccess = true;
  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);
} else {
  // By explicitly using `prop-types` you are opting into new production behavior.
  module.exports = require('./factoryWithThrowingShims')();
}

factoryWithThrowingShims只为所有PropTypes方法提供填充程序,以便在从生产环境中的PropTypes调用某些方法时避免代码中的异常。这意味着只有当PropTypes/factoryWithTypeCheckers.js不等于process.env.NODE_ENV时才会包含来自production的整个代码。如果你需要完全(甚至Shims),从你的代码中删除PropTypes,你需要使用一些babel plugins


1
投票

您可以在devDependenciespackage.json中使用PropTypes。所以不,它不会增加生产构建。


1
投票

您可以使用此babel插件删除不必要的propTypes。 qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.