Today I started to play around with a fresh React Native project. I ran the basic react-native init command and got the sample project littered with all these weird files. Are all of these necessary and what are they?
.buckconfig
This seems to be related to a RN build tool called "Buck" made by Facebook. Is this used by default in the freshly initialise project? How can I check what builder is being used?
.flowconfig
Never heard of this before. Short googling gave me the understanding that this is some sort of type checker for JS. I am using TypeScript, so I think there's no need for this config file to be present?
.watchmanconfig
Empty watchmanconfig in the project root? Why? What's the point in having this there?
Edit: Apparently it is safe to delete from the project as long as it is not too large
Do I need to keep .watchmanconfig file in react-native project?
babel.config.json
Then probably the most confusing of them all for me was surprisingly Babel config. Babel has been present in many projects I have been working on. Always they have been some already initialised projects and I have never needed to pay much attention to the configuration details - hence this post. If using TypeScript and tsc
, what do we need Babel for? Isn't tsc
already transpiling the TypeScript code?
For a test I deleted all of the above files from my test project and it still seems to build and work just fine. I am now thinking that could this lead to some problems later in the development?
I like to keep my projects as clean as possible from all trash, so they are nicer to develop and easier to understand as there are less random stuff floating around.