babel-plugin-transform-react-remove-prop-types weekly downloads statistics
By oliviertassinari (2 listings) · npm · Babel plugins
Remove unnecessary React propTypes from the production build
babel-plugin-transform-react-remove-prop-types has 2,123,393 recorded weekly downloads on npm, a decrease of 49.7% over the past 30 days.
It ranks #155 of 2,256 tracked npm listings by weekly downloads.
Over 90 days, weekly downloads changed by -57.0%.
PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.
About babel-plugin-transform-react-remove-prop-types
babel-plugin-transform-react-remove-prop-types
Remove unnecessary React propTypes from the production build.
Installation
The problem solved
Remove React propTypes from the production build, as they are only used in development. You can save bandwidth by removing them.
Example
In
Out
With comment annotation
The majority of cases should be addressed by default by this plugin.
In some cases, for example when using HOCs (High Order Components), like *react-redux*'s connect, or component inheritance (although it's NOT recommended), a comment after the propTypes definition may be used to force the removal:
Usage
Via .babelrc (Recommended)
.babelrc
without options:
with options:
Via CLI
Via Node API
without options:
with options:
Options
mode
• remove (default): the propTypes definitions are removed from the source code. • wrap: the propTypes definitions are wrapped with the following code:
Accessing Component.propTypes.className won't throw. It's a tradeoff between the size of the output file and the likelihood libraries like react-native-hyperlink breaks. • unsafe-wrap: the propTypes definitions are wrapped with the following code:
Accessing Component.propTypes.className will throw.
The *wrap* modes are targeting React libraries like material-ui or react-native-web. They are not intended to be used by application authors.
removeImport
• true: the import statements are removed as well. This option only works if mode is set to remove: • false (default): does not remove the import statements.
ignoreFilenames
This filter generates a regular expression. Any filenames containing one of the array's strings will be ignored. By default, we match everything.
Following the Is it safe? section, you might encounter a component depending on the propTypes at runtime to work. For this reason, we provide an array options to filter out some files and folders. For instance, you can ignore all the npm modules:
additionalLibraries
This option gives the possibility to remove other propTypes in addition to the canonical prop-types.
For instance, by default
will result in the latter not to be removed, while with:
both will be removed.
Regular expressions
If you are using Babel 7 or newer and your config is stored in babel.config.js, you can also use a regular expression to describe modules, which should be removed.
This would be particularly useful when using custom prop types validators, implemented as part of your own source code. For example
would be removed with the following setting
If you use an index file
you could set it up as
classNameMatchers
Use this option to enable this plugin to run on components that extend a class different than React.Component or React.PureComponent.
Given this example:
You would use:
createReactClassName
Use this option to set a custom name for the import of the create-react-class package that is different than createReactClass.
Given this example:
You would use:
Is it safe?
If you are using the propTypes in a conventional way, i.e by using them to perform type checking on the properties, that plugin should be safe to use.
However, some libraries are accessing the propTypes on the component directly. For instance react-native-vector-icons use them to split the properties between two components:
:warning: The plugin is breaking that code if it ends up removing TouchableHighlight.propTypes.
Make sure you are: • Not using that pattern in your source code. If you do, explicitly export the propTypes to work around that limitation. • Not parsing the node_modules. If you do, test that your code is still working before shipping into production.
eslint-plugin-react has a rule forbid-foreign-prop-types that can help you make this plugin safer to use.
License
MIT
Description from the npm listing.
- babel
- babel-plugin
- react
- minification
- propTypes
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (121)Similar npm Babel plugins plugins
All 20 babel-plugin-transform-react-remove-prop-types alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/babel-plugin-transform-react-remove-prop-types. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.