Rolldown plugin to remove React PropTypes from production builds
Port of babel-plugin-transform-react-remove-prop-types for Rolldown (with Rollup compatibility).
- 🚀 Primary support for Rolldown with Plugin Hook Filters
- 🔄 Rollup compatible via adapter export
- ⚡ Fast - Uses Rolldown's native performance
- 🎯 Precise - Removes only PropTypes, keeps everything else
- 🔧 Flexible - Multiple removal modes
npm install --save-dev rolldown-react-remove-prop-types
# or
pnpm add -D rolldown-react-remove-prop-types
# or
yarn add -D rolldown-react-remove-prop-types// rolldown.config.js
import removePropTypes from 'rolldown-react-remove-prop-types';
export default {
plugins: [
removePropTypes({
mode: 'remove', // default
}),
],
};// rollup.config.js
import removePropTypes from 'rolldown-react-remove-prop-types/rollup';
export default {
plugins: [
removePropTypes({
mode: 'remove', // default
}),
],
};'remove'(default): Completely removes propTypes definitions'wrap': Wraps propTypes withprocess.env.NODE_ENV !== "production" ? {...} : {}'unsafe-wrap': Wraps withif (process.env.NODE_ENV !== "production") {...}
removePropTypes({ mode: 'remove' })true: Remove PropTypes imports when mode is'remove'false(default): Keep imports
removePropTypes({
mode: 'remove',
removeImport: true,
})Standard Rollup filter patterns.
removePropTypes({
include: 'src/**/*.{js,jsx,ts,tsx}',
exclude: 'node_modules/**',
})Array of patterns to ignore. Creates a RegExp with patterns joined by |.
removePropTypes({
ignoreFilenames: ['node_modules'],
})Additional PropTypes-like libraries to remove.
removePropTypes({
additionalLibraries: ['react-immutable-proptypes'],
})Custom class names to treat as React components.
removePropTypes({
classNameMatchers: ['BaseComponent'],
})const Baz = (props) => <div {...props} />;
Baz.propTypes = {
className: PropTypes.string
};const Baz = (props) => <div {...props} />;Force removal with comment:
Component.propTypes /* remove-proptypes */ = {}MIT