ctrlplusb / react-universally

A starter kit for universal react applications.
MIT License
1.7k stars 244 forks source link

Rename 'shared' folder to 'src' folder #521

Open oyeanuj opened 6 years ago

oyeanuj commented 6 years ago

Hi folks! I was wondering if in the next release, we should rename shared folder to src folder. Mostly because it increasingly seems to be the convention (create-react-app popularizes it), and lot of other tools seem to be trying to work out of the box with that convention.

For example, I was trying to integrate catalog as a living style guide for my project and ran into issues. And as per one of the members of the catalog project, they try to work out of the box for projects where components live in src. This is also true for others like react-styleguidist.

Has this been discussed already before? Thoughts?

SleepWalker commented 6 years ago

I'm voting for app. Because we have source files in server, client, config too. With additional tweaks you can achieve something like this:

import config from 'config';
import Component from 'app/components/Component';

Which looks really nice

For example, I was trying to integrate catalog as a living style guide for my project and ran into issues. And as per one of the members of the catalog project, they try to work out of the box for projects where components live in src. This is also true for others like react-styleguidist.

This is an issue of catalog. You can use the tool, that does not make assumptions about the project it runs in, e.g. storybook.

oyeanuj commented 6 years ago

@SleepWalker I'm open to app as well if that is picking up as a convention. Alternatively, we could think of app being under src which is also a prevalent convention.

To be clear, the matter isn't about catalog, but the fact that as tools that pick a configuration to default to.. we should embrace it as well. create-react-app is the a big way this convention is set, and I just gave the examples of couple of tools that work out of the box for CRA apps, mainly due to the file structure.

Falieson commented 6 years ago

1) I agree that shared should be src 2) I also think shared/utils/ should be shared/helpers 3) And that shared/Html/index.js should be shared/helpers/renderHtml.js

From my shared/README.md

.
├── /app/                             # The Application
    ├── /layouts/                     # For different screen resolutions
    └── /routes/                      # 
├── /helpers/                         # 
├── /modules/                         # 
└── /redux/                           # 
Falieson commented 6 years ago

The base is my typescript Fork, but should be like 99% of the work if someone wants to copy it: https://github.com/Falieson/2017-typescript-react/commit/c78d994df9a194843555d5d76ce69059d3cd3cd3