My current project involves working on a React Native application for a client. After I had already written a significant amount of code, my client requested a new feature to be added. This feature should have been simple to implement, but due to the complexity of the existing codebase, it proved to be quite challenging. As a result, I made the decision to start from scratch in order to both improve my code structure and incorporate a new design idea I had envisioned. The only downside is that I now need to reinstall and set up all the necessary packages, which can be a tedious process, especially since additional configurations are needed within the android folder.
After conducting some research, I came across yarn workspace. Since I was already using yarn, I thought utilizing this tool would streamline the package installation process by managing them at the root level of the workspace. This also allowed me to set up ts-config and eslint configurations universally for all applications within the project, ensuring consistency throughout.
However, I encountered an issue as most resources I found focused on yarn workspace with react or react native, without incorporating TypeScript, which left me unsure about how to proceed, given my limited experience. My ultimate goal is to establish a structure within yarn workspace resembling:
task-manager-workspace-> the main workspace folder
workspaces-> akin to the packages directory
apps-> housing various versions of the application
app-> the latest bare bones React Native app (non-Expo) with incorporated TypeScript
common-> storing shared functionalities among apps with minimal differences
core-> containing essential logic such as data handling
views-> encompassing common components like headers and navigation bars
This comprehensive application should be fully TypeScript-oriented, integrate eslint (preferably configured by wcandillon), and adhere to prettier formatting guidelines. While I do not expect you to complete this setup for me, as a newcomer to workspace concepts, I seek guidance on how to successfully implement this intricate setup within yarn workspace.