Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a package
sideEffects
field with afalse
value. This allows tree-shaking and dead-code-elimination to work much better, eliminating imports ofprop-types
if all of the imports end up being unused.This change could significantly improve the bundle size of projects that nest
propTypes
under a conditional so they will be eliminated from a production bundle, for example:https://github.com/jaydenseric/device-agnostic-ui/blob/89e5ba0b8c0ee5a8fb38f4ed74e7f19a6b4970d7/src/public/components/Button.js#L25-L32
Currently, because the
prop-types
package doesn't have a"sideEffects": false
field, for a production bundle esbuild eliminates theButton.propTypes = {
declaration but it leaves theconst PropTypes = require('prop-types');
.