Skip to content

Instantly share code, notes, and snippets.

@statico
Created May 6, 2024 23:13
Show Gist options
  • Save statico/dea9f83770b5e497a1b841cd933c5219 to your computer and use it in GitHub Desktop.
Save statico/dea9f83770b5e497a1b841cd933c5219 to your computer and use it in GitHub Desktop.
{
"name": "xxxxx",
"version": "1.0.0",
"license": "UNLICENSED",
"private": true,
"scripts": {
"format": "prettier --write .",
"prepare": "husky install",
"lint": "pnpm -r lint --fix",
"types:check": "pnpm -r types:check",
"test": "jest --runInBand",
"test:ci": "jest --detectOpenHandles --runInBand",
"precommit": "lint-staged --concurrent false"
},
"dependencies": {
"husky": "8.0.3",
"lint-staged": "13.3.0",
"prettier": "2.8.1"
},
"devDependencies": {
"@babel/preset-typescript": "7.23.0",
"@jest/globals": "29.7.0",
"jest": "29.7.0",
"postinstall-postinstall": "2.1.0",
"ts-jest": "29.1.1"
},
"lint-staged": {
"packages/web/**/*.{js,ts,tsx}": [
"pnpm lint --fix"
],
"*": "prettier --write --ignore-unknown"
},
"pnpm": {
"patchedDependencies": {
"rn-range-slider@2.2.2": "patches/rn-range-slider@2.2.2.patch",
"posthog-react-native@2.7.1": "patches/posthog-react-native@2.7.1.patch"
},
"peerDependencyRules": {
"allowedVersions": {
"react": ">=18",
"metro": "~0.79.0"
},
"ignoreMissing": [
"@babel/*"
]
}
}
}
{
"name": "xxxxx",
"version": "1.0.0",
"license": "UNLICENSED",
"private": true,
"scripts": {
"start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
"doctor": "npx expo-doctor",
"test": "cd ../.. ; pnpm test",
"lint": "eslint --max-warnings 0 .",
"types:check": "NODE_OPTIONS=--max-old-space-size=8192 tsc --build",
"types:watch": "NODE_OPTIONS=--max-old-space-size=8192 tsc --build -w",
"eas-build-on-success": "[ -n \"$SLACK_WEBHOOK_URL\" ] && curl -X POST --data \"{\\\"text\\\":\\\"Build completed for $EAS_BUILD_PROFILE on $EAS_BUILD_PLATFORM - https://expo.dev/accounts/xxxxxcom/projects/xxxxx/builds/$EAS_BUILD_ID\\\"}\" $SLACK_WEBHOOK_URL",
"eas-build-on-error": "[ -n \"$SLACK_WEBHOOK_URL\" ] && curl -X POST --data \"{\\\"text\\\":\\\"Build failed for $EAS_BUILD_PROFILE on $EAS_BUILD_PLATFORM - https://expo.dev/accounts/xxxxxcom/projects/xxxxx/builds/$EAS_BUILD_ID\\\"}\" $SLACK_WEBHOOK_URL",
"build:trpc-router-types": "cd ../web && pnpm build:trpc-router-types",
"knex": "cd ../web && pnpm knex",
"find-dead-code": "knip"
},
"dependencies": {
"@clerk/clerk-expo": "0.19.16",
"@expo/webpack-config": "19.0.0",
"@fortawesome/fontawesome-svg-core": "6.4.2",
"@fortawesome/free-brands-svg-icons": "6.4.2",
"@fortawesome/pro-light-svg-icons": "6.4.2",
"@fortawesome/pro-regular-svg-icons": "6.4.2",
"@fortawesome/pro-solid-svg-icons": "6.4.2",
"@fortawesome/react-native-fontawesome": "0.3.0",
"@gorhom/bottom-sheet": "4.5.1",
"@xxxxx/common": "*",
"@react-native-anywhere/polyfill-base64": "0.0.1-alpha.0",
"@react-native-async-storage/async-storage": "1.19.3",
"@react-native-community/datetimepicker": "7.6.0",
"@react-native-community/netinfo": "9.4.1",
"@sentry/react": "7.112.2",
"@sentry/react-native": "5.22.0",
"@tanstack/react-query": "4.35.7",
"@trpc/client": "10.45.1",
"@trpc/react-query": "10.45.1",
"change-case": "4.1.2",
"dotenv": "16.3.1",
"expo": "49.0.13",
"expo-application": "5.4.0",
"expo-auth-session": "5.2.0",
"expo-av": "13.6.0",
"expo-camera": "13.6.0",
"expo-clipboard": "4.5.0",
"expo-constants": "14.4.2",
"expo-contacts": "12.4.0",
"expo-crypto": "12.6.0",
"expo-dev-client": "2.4.11",
"expo-device": "5.6.0",
"expo-document-picker": "11.7.0",
"expo-file-system": "15.6.0",
"expo-font": "11.6.0",
"expo-haptics": "12.6.0",
"expo-image": "1.5.1",
"expo-image-manipulator": "11.5.0",
"expo-image-picker": "14.5.0",
"expo-linear-gradient": "~12.3.0",
"expo-linking": "5.0.2",
"expo-localization": "14.5.0",
"expo-location": "16.3.0",
"expo-media-library": "15.6.0",
"expo-network": "5.6.0",
"expo-notifications": "0.20.1",
"expo-privacy-manifest-polyfill-plugin": "^0.0.2",
"expo-router": "2.0.8",
"expo-secure-store": "12.5.0",
"expo-sharing": "11.7.0",
"expo-splash-screen": "0.20.5",
"expo-status-bar": "1.7.1",
"expo-store-review": "6.6.0",
"expo-task-manager": "11.5.0",
"expo-updates": "0.18.14",
"expo-web-browser": "12.5.0",
"formik": "2.4.5",
"intl-pluralrules": "2.0.1",
"json-stringify-safe": "5.0.1",
"just-compare": "2.3.0",
"libphonenumber-js": "1.10.45",
"lodash.debounce": "4.0.8",
"luxon": "3.4.3",
"metro": "0.79.1",
"metro-resolver": "0.79.1",
"metro-runtime": "0.79.1",
"ms": "2.1.3",
"p-retry": "6.1.0",
"pluralize": "8.0.0",
"posthog-react-native": "2.7.1",
"react": "18.2.0",
"react-content-loader": "6.2.1",
"react-dom": "18.2.0",
"react-error-boundary": "4.0.11",
"react-native": "0.72.5",
"react-native-base64": "0.2.1",
"react-native-date-picker": "4.3.3",
"react-native-dialog": "9.3.0",
"react-native-draggable-flatlist": "4.0.1",
"react-native-flex-layout": "0.1.5",
"react-native-gesture-handler": "2.13.1",
"react-native-keyboard-aware-scroll-view": "0.9.5",
"react-native-maps": "1.7.1",
"react-native-mmkv": "2.12.1",
"react-native-popup-menu": "0.16.1",
"react-native-reanimated": "3.5.4",
"react-native-reanimated-confetti": "1.0.1",
"react-native-restart": "0.0.27",
"react-native-safe-area-context": "4.7.2",
"react-native-screens": "3.25.0",
"react-native-svg": "13.14.0",
"react-native-swipe-list-view": "3.2.9",
"react-native-web": "0.19.9",
"react-native-web-swiper": "2.2.4",
"react-native-webview": "13.6.0",
"react-test-renderer": "18.2.0",
"recoil": "0.7.7",
"rn-range-slider": "2.2.2",
"sentry-expo": "7.2.0",
"stream-chat-expo": "5.18.1",
"swr": "2.2.4",
"yup": "1.3.2"
},
"devDependencies": {
"@babel/core": "7.23.0",
"@babel/plugin-transform-flow-strip-types": "7.22.5",
"@clerk/types": "3.53.0",
"@testing-library/jest-dom": "6.1.3",
"@testing-library/jest-native": "5.4.3",
"@testing-library/react": "14.0.0",
"@testing-library/react-native": "12.3.0",
"@types/lodash.debounce": "4.0.7",
"@types/ms": "0.7.32",
"@types/react": "18.2.24",
"@types/react-native": "0.72.3",
"@types/react-native-base64": "0.2.2",
"@types/webpack-env": "1.18.2",
"@typescript-eslint/eslint-plugin": "6.7.4",
"@typescript-eslint/parser": "6.7.4",
"eslint": "8.50.0",
"eslint-config-prettier": "9.0.0",
"eslint-plugin-import": "2.28.1",
"eslint-plugin-react": "7.33.2",
"eslint-plugin-simple-import-sort": "10.0.0",
"jest-expo": "49.0.0",
"knip": "5.0.2",
"typescript": "5.2.2"
}
}
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1
+
Progress: resolved 1, reused 1, downloaded 0, added 1, done
Running 12 checks on your project...
✔ Check Expo config for common issues
✔ Check package.json for common issues
✔ Check native tooling versions
✖ Check dependencies for packages that should not be installed directly
✔ Check for common project setup issues
✔ Check for issues with metro config
✔ Check npm/ yarn versions
✔ Check Expo config (app.json/ app.config.js) schema
✔ Check for legacy global CLI installed locally
✔ Check that native modules do not use incompatible support packages
✔ Check that native modules use compatible support package versions for installed Expo SDK
✖ Check that packages match versions required by installed Expo SDK
Detailed check results:
The package "@types/react-native" should not be installed directly in your project, as types are included with the "react-native" package.
Some dependencies are incompatible with the installed expo version:
@react-native-async-storage/async-storage@1.19.3 - expected version: 1.18.2
@react-native-community/datetimepicker@7.6.0 - expected version: 7.2.0
@react-native-community/netinfo@9.4.1 - expected version: 9.3.10
@sentry/react-native@5.22.0 - expected version: 5.10.0
expo-application@5.4.0 - expected version: ~5.3.0
expo-auth-session@5.2.0 - expected version: ~5.0.2
expo-av@13.6.0 - expected version: ~13.4.1
expo-camera@13.6.0 - expected version: ~13.4.4
expo-clipboard@4.5.0 - expected version: ~4.3.1
expo-contacts@12.4.0 - expected version: ~12.2.0
expo-crypto@12.6.0 - expected version: ~12.4.1
expo-dev-client@2.4.11 - expected version: ~2.4.13
expo-device@5.6.0 - expected version: ~5.4.0
expo-document-picker@11.7.0 - expected version: ~11.5.4
expo-file-system@15.6.0 - expected version: ~15.4.5
expo-font@11.6.0 - expected version: ~11.4.0
expo-haptics@12.6.0 - expected version: ~12.4.0
expo-image@1.5.1 - expected version: ~1.3.5
expo-image-manipulator@11.5.0 - expected version: ~11.3.0
expo-image-picker@14.5.0 - expected version: ~14.3.2
expo-localization@14.5.0 - expected version: ~14.3.0
expo-location@16.3.0 - expected version: ~16.1.0
expo-media-library@15.6.0 - expected version: ~15.4.1
expo-network@5.6.0 - expected version: ~5.4.0
expo-secure-store@12.5.0 - expected version: ~12.3.1
expo-sharing@11.7.0 - expected version: ~11.5.0
expo-status-bar@1.7.1 - expected version: ~1.6.0
expo-store-review@6.6.0 - expected version: ~6.4.0
expo-task-manager@11.5.0 - expected version: ~11.3.0
expo-updates@0.18.14 - expected version: ~0.18.19
expo-web-browser@12.5.0 - expected version: ~12.3.2
react-native@0.72.5 - expected version: 0.72.10
react-native-gesture-handler@2.13.1 - expected version: ~2.12.0
react-native-reanimated@3.5.4 - expected version: ~3.3.0
react-native-safe-area-context@4.7.2 - expected version: 4.6.3
react-native-screens@3.25.0 - expected version: ~3.22.0
react-native-svg@13.14.0 - expected version: 13.9.0
react-native-webview@13.6.0 - expected version: 13.2.2
sentry-expo@7.2.0 - expected version: ~7.1.0
Your project may not work correctly until you install the correct versions of the packages.
Fix with: npx expo install --fix
Found outdated dependencies
Advice: Use 'npx expo install --check' to review and upgrade your dependencies.
One or more checks failed, indicating possible issues with the project.
@wodin
Copy link

wodin commented May 19, 2024

    "metro": "0.79.1",
    "metro-resolver": "0.79.1",
    "metro-runtime": "0.79.1",

These should not be installed directly. The correct version should be pulled in by react-native.

The package "@types/react-native" should not be installed directly in your project, as types are included with the "react-native" package.

I'm pretty sure expo-doctor is right and you should uninstall this.

About all of the other dependencies that expo-doctor complains about: Basically, you're free to use versions that are not the recommended versions, but there's a possibility that there will be some compatibility problems. If you're sure that they are OK, you can tell expo-doctor, expo install, etc. to ignore them like this:
https://docs.expo.dev/more/expo-cli/#configuring-dependency-validation

{
  "expo": {
    "install": {
      "exclude": ["@react-native-async-storage/async-storage", "@react-native-community/datetimepicker", "..."]
    }
  }
}

But of course, then npx expo install --fix will not fix them. So you'll need to remember to remove that when you upgrade to the next Expo SDK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment