Skip to content

Locking packages versions in the packages.json cause duplicates in node_modules and JS bundleΒ #6737

@retyui

Description

@retyui

As I notice, dependency versions are locked in 'package.json', generating a big amount of duplicates in the final JS bundle (see video)

rainbow/package.json

Lines 66 to 312 in 5dddafb

"dependencies": {
"@bankify/react-native-animate-number": "0.2.1",
"@bradgarropy/use-countdown": "1.4.1",
"@candlefinance/faster-image": "1.6.2",
"@capsizecss/core": "3.0.0",
"@coinbase/mobile-wallet-protocol-host": "0.1.7",
"@ensdomains/address-encoder": "0.2.16",
"@ensdomains/content-hash": "2.5.7",
"@ensdomains/eth-ens-namehash": "2.0.15",
"@ethersproject/abi": "5.7.0",
"@ethersproject/abstract-provider": "5.7.0",
"@ethersproject/abstract-signer": "5.7.0",
"@ethersproject/address": "5.7.0",
"@ethersproject/bignumber": "5.7.0",
"@ethersproject/bytes": "5.7.0",
"@ethersproject/constants": "5.7.0",
"@ethersproject/contracts": "5.7.0",
"@ethersproject/hdnode": "5.7.0",
"@ethersproject/keccak256": "5.7.0",
"@ethersproject/logger": "5.7.0",
"@ethersproject/properties": "5.7.0",
"@ethersproject/providers": "5.7.2",
"@ethersproject/random": "5.7.0",
"@ethersproject/sha2": "5.7.0",
"@ethersproject/shims": "5.7.0",
"@ethersproject/solidity": "5.7.0",
"@ethersproject/strings": "5.7.0",
"@ethersproject/transactions": "5.7.0",
"@ethersproject/units": "5.7.0",
"@ethersproject/wallet": "5.7.0",
"@gorhom/bottom-sheet": "4.6.1",
"@json-rpc-tools/utils": "1.7.6",
"@lavamoat/preinstall-always-fail": "2.0.0",
"@ledgerhq/hw-app-eth": "6.39.0",
"@ledgerhq/react-native-hw-transport-ble": "6.33.4",
"@legendapp/list": "1.1.0",
"@metamask/eth-sig-util": "7.0.2",
"@notifee/react-native": "7.8.2",
"@rainbow-me/provider": "0.1.2",
"@rainbow-me/react-native-animated-number": "0.0.2",
"@rainbow-me/swaps": "0.36.0",
"@rainbow-me/token-launcher": "0.1.0",
"@react-native-async-storage/async-storage": "1.23.1",
"@react-native-camera-roll/camera-roll": "7.7.0",
"@react-native-clipboard/clipboard": "1.13.2",
"@react-native-community/netinfo": "11.4.1",
"@react-native-firebase/app": "20.1.0",
"@react-native-firebase/messaging": "20.1.0",
"@react-native-firebase/remote-config": "20.1.0",
"@react-native-masked-view/masked-view": "0.3.1",
"@react-native-menu/menu": "1.1.3",
"@react-native/metro-config": "0.74.83",
"@react-navigation/core": "6.4.16",
"@react-navigation/material-top-tabs": "6.6.2",
"@react-navigation/native": "6.1.17",
"@react-navigation/stack": "6.3.29",
"@reown/walletkit": "1.1.2",
"@reservoir0x/reservoir-sdk": "2.3.0",
"@rudderstack/rudder-sdk-react-native": "2.0.0",
"@sentry/react-native": "6.15.1",
"@shopify/flash-list": "1.7.2",
"@shopify/react-native-performance": "4.1.2",
"@shopify/react-native-skia": "1.9.0",
"@tanstack/react-query": "4.2.1",
"@tanstack/react-query-persist-client": "4.2.1",
"@tradle/react-native-http": "2.0.1",
"@types/i18n-js": "3.0.3",
"@types/lodash": "4.14.168",
"@types/react-redux": "7.1.9",
"@types/url-join": "4.0.1",
"@unstoppabledomains/resolution": "7.1.4",
"@wagmi/chains": "1.8.0",
"@walletconnect/client": "1.8.0",
"@walletconnect/core": "2.17.0",
"@walletconnect/legacy-utils": "2.0.0",
"@walletconnect/react-native-compat": "2.17.0",
"@walletconnect/types": "2.17.0",
"@walletconnect/utils": "2.17.0",
"assert": "1.5.0",
"async-mutex": "0.3.2",
"asyncstorage-down": "4.2.0",
"big-integer": "1.6.51",
"bignumber.js": "9.0.1",
"bip39": "3.0.2",
"browserify-zlib": "0.1.4",
"buffer": "4.9.2",
"chroma-js": "2.1.0",
"cloudinary": "1.27.1",
"conditional-wrap": "1.0.2",
"console-browserify": "1.2.0",
"constants-browserify": "1.0.0",
"currency.js": "2.0.4",
"d3-scale": "4.0.2",
"d3-shape": "3.2.0",
"date-fns": "2.16.1",
"dedent": "0.7.0",
"delay": "4.4.0",
"deprecated-react-native-prop-types": "2.2.0",
"dns.js": "1.0.1",
"domain-browser": "1.2.0",
"emoji-datasource": "4.1.0",
"emoji-regex": "10.0.0",
"eth-url-parser": "1.0.4",
"ethereumjs-util": "6.2.1",
"ethereumjs-wallet": "1.0.1",
"events": "3.3.0",
"expo": "51.0.38",
"expo-image-picker": "15.1.0",
"expo-store-review": "7.0.2",
"expo-web-browser": "13.0.3",
"fast-text-encoding": "1.0.4",
"figma-squircle": "1.1.0",
"global": "4.4.0",
"grapheme-splitter": "1.0.4",
"graphql-request": "5.0.0",
"graphql-tag": "2.11.0",
"gretchen": "1.5.0",
"https-browserify": "0.0.1",
"i18n-js": "3.8.0",
"idna-uts46-hx": "3.4.0",
"imgix-core-js": "2.3.2",
"immer": "9.0.6",
"inherits": "2.0.4",
"lint-staged": "10.4.0",
"lodash": "4.17.21",
"make-color-more-chill": "0.2.2",
"match-sorter": "6.3.0",
"mipd": "0.0.5",
"mnemonist": "0.38.1",
"moti": "0.28",
"multiformats": "9.6.2",
"nanoid": "3.2.0",
"p-wait-for": "4.1.0",
"pako": "2.0.4",
"parse-ms": "2.1.0",
"patch-package": "8.0.0",
"path-browserify": "0.0.0",
"prop-types": "15.8.1",
"punycode": "1.4.1",
"qrcode": "1.4.4",
"qs": "6.9.7",
"querystring-es3": "0.2.1",
"react": "18.2.0",
"react-fast-compare": "3.2.2",
"react-flatten-children": "1.1.2",
"react-freeze": "1.0.4",
"react-native": "0.74.3",
"react-native-action-sheet": "2.2.0",
"react-native-actionsheet": "2.4.2",
"react-native-aes-crypto": "rainbow-me/react-native-aes#65c49f7e70266615b2999eaa7db654d3fe4f2e3b",
"react-native-animateable-text": "0.12.1",
"react-native-ble-plx": "3.2.1",
"react-native-blur-view": "christianbaroni/react-native-blur-view#2548117e37750f2c08ef0ec8c7e1c38e1294c9a8",
"react-native-bootsplash": "6.3.7",
"react-native-branch": "5.3.1",
"react-native-change-icon": "4.0.0",
"react-native-cloud-fs": "rainbow-me/react-native-cloud-fs#d73f055c441566e5a57eebd621da8df3cf2499bb",
"react-native-crypto": "2.2.0",
"react-native-dark-mode": "0.2.2",
"react-native-device-info": "5.3.1",
"react-native-dotenv": "2.4.2",
"react-native-edge-to-edge": "1.4.3",
"react-native-extra-dimensions-android": "1.2.2",
"react-native-fast-image": "8.5.11",
"react-native-fs": "2.16.6",
"react-native-gesture-handler": "2.21.2",
"react-native-get-random-values": "1.5.0",
"react-native-haptic-feedback": "2.2.0",
"react-native-image-crop-picker": "0.42.0",
"react-native-indicators": "0.17.0",
"react-native-ios-context-menu": "1.15.3",
"react-native-keyboard-area": "1.0.6",
"react-native-keyboard-controller": "1.16.7",
"react-native-keychain": "10.0.0",
"react-native-level-fs": "3.0.1",
"react-native-linear-gradient": "2.8.3",
"react-native-mail": "4.1.0",
"react-native-markdown-display": "7.0.0-alpha.2",
"react-native-minimizer": "rainbow-me/react-native-minimizer#26ae6dce10d353de701cebc3a1ae126729bf87f0",
"react-native-mmkv": "2.12.2",
"react-native-os": "rainbow-me/react-native-os#41a08e45260b8c1c53c77ad00e13ae954cb9337c",
"react-native-pager-view": "5.4.24",
"react-native-palette-full": "1.2.0",
"react-native-permissions": "3.10.1",
"react-native-quick-md5": "3.0.6",
"react-native-radial-gradient": "rainbow-me/react-native-radial-gradient#b99ab59d27dba70364ef516bd5193c37657ba95c",
"react-native-randombytes": "3.5.3",
"react-native-reanimated": "3.16.6",
"react-native-redash": "16.3.0",
"react-native-restart": "0.0.22",
"react-native-safe-area-context": "4.14.0",
"react-native-safe-area-view": "rainbow-me/react-native-safe-area-view",
"react-native-screen-corner-radius": "0.2.2",
"react-native-screens": "3.35.0",
"react-native-section-list-get-item-layout": "2.2.3",
"react-native-share": "8.2.1",
"react-native-sound": "0.11.2",
"react-native-splash-screen": "3.3.0",
"react-native-storage": "1.0.1",
"react-native-svg": "15.11.2",
"react-native-tab-view": "3.5.1",
"react-native-tcp": "3.3.2",
"react-native-text-input-mask": "2.0.0",
"react-native-text-size": "rainbow-me/react-native-text-size#15b21c9f88c6df0d1b5e0f2ba792fe59b5dc255a",
"react-native-tooltip": "rainbow-me/react-native-tooltip#e0e88d212b5b7f350e5eabba87f588a32e0f2590",
"react-native-tooltips": "rainbow-me/react-native-tooltips#fdafbc7ba33ee231229f5d3f58b29d0d1c55ddfa",
"react-native-turbo-haptics": "1.0.5",
"react-native-udp": "2.7.0",
"react-native-url-polyfill": "2.0.0",
"react-native-version-number": "0.3.6",
"react-native-video": "6.3.0",
"react-native-view-shot": "4.0.2",
"react-native-vision-camera": "4.6.4",
"react-native-webview": "13.8.2",
"react-native-widgetkit": "1.0.9",
"react-navigation-backhandler": "2.0.1",
"react-primitives": "0.8.1",
"react-redux": "7.2.1",
"react-style-proptype": "3.2.2",
"readable-stream": "1.1.14",
"recoil": "0.7.6",
"recyclerlistview": "3.0.5",
"redux": "4.0.5",
"redux-thunk": "2.3.0",
"reselect": "4.0.0",
"rn-fetch-blob": "0.12.0",
"smitter": "1.1.1",
"sonner-native": "0.16.0",
"stream-browserify": "1.0.0",
"string.fromcodepoint": "0.2.1",
"string_decoder": "0.10.31",
"styled-components": "5.2.1",
"timers-browserify": "1.4.2",
"tty-browserify": "0.0.0",
"url": "0.10.3",
"url-join": "4.0.1",
"url-parse": "1.5.10",
"use-debounce": "10.0.0",
"use-deep-compare": "1.3.0",
"use-memo-one": "1.1.1",
"viem": "2.21.54",
"vm-browserify": "0.0.4",
"w2t": "3.0.2",
"zeego": "1.10.0",
"zod": "3.23.8",
"zustand": "4.5.5"
},

Screen.Recording.2025-07-08.at.09.00.31.mov

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions