expo / router

[ARCHIVE]: Expo Router has moved to expo/expo -- The File-based router for universal React Native apps
https://docs.expo.dev/routing/introduction/
1.36k stars 113 forks source link

why is the dev server generating .gitignore #841

Closed juliusmarminge closed 1 year ago

juliusmarminge commented 1 year ago

Which package manager are you using? (Yarn is recommended)

pnpm (known issues due to Metro)

Summary

I enabled the experimental typedRoutes features and ever since expo router is generating a .gitignore everytime i run dev.

I think it's kinda silly to generate this file multiple times, I tend to not have nested gitignores in my monorepos but just keep a general purpose one in root, so having expo-router generate one for me everytime i run dev is kinda annoying


I think it's fair to assume devs can put things in their gitignores themselves, and you don't have to generate it for us.

Minimal reproducible example

Happy to provide one if you deem necessary, for now just check out create-t3-turbo where i have the gitignore in root and don't want one in the expo directory

marklawlor commented 1 year ago

There's two reasons:

The practical reason is that features are still experimental and they are not as strictly covered by semver. By forcing them to be inside a gitignore it gives us more flexibility to make changes without forcing the user to commit updates seemingly randomly updates.

The stylist reason, gitignore is designed to be nested/inherited and choosing not to do so is a (valid) personal choice. Mono-repo file layouts are still a topic of discussion, but I'm observing that the trend seems to be moving towards having a top level Project configs with App level configs (that inherit from Project). As gitignore was designed to be nested, and the config we are generating is App specific, I believe it makes sense that the config we are generating should live at the app level (we can provide a flag to disable this behaviour).

I'm going to close this issue and move it to a discussion as I am interested in people's opinions on the subject.