##Initial Machine Setup
- Install Node 4.0.0 or greater - (5.0 or greater is recommended for optimal build performance). Need to run multiple versions of Node? Use nvm.
- Install Git.
- Disable safe write in your editor to assure hot reloading works properly.
- On a Mac? You're all set. If you're on Linux or Windows, complete the steps for your OS below.
On Linux:
- Run this to increase the limit on the number of files Linux will watch. Here's why.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
On Windows:
- Install Python 2.7. Some node modules may rely on node-gyp, which requires Python on Windows.
- Install C++ Compiler. Browser-sync requires a C++ compiler on Windows. Visual Studio Express comes bundled with a free C++ compiler. Or, if you already have Visual Studio installed: Open Visual Studio and go to File -> New -> Project -> Visual C++ -> Install Visual C++ Tools for Windows Desktop. The C++ compiler is used to compile browser-sync (and perhaps other Node modules).
##General Project Setup This Setup comes from the React Slingshot Project, if you need general help, look at there Example App
##Folder Structure
- / project root containing all build/environment configuration files (runtime configurations can be put in an seperate /config folder)
- /src containing all editable source files
- /src/api containing Apis to external Services
- /src/components containing all React Components (The Different to Container is that these Components dont contain Application Logic, only Component Logic)
- /src/config containing all Config Files
- /src/constants containing constents e.g. actionTypes
- /src/container containing all React Components which are serving as the Applications Structure e.g. WelcomePage, Impressum, Overlays (The Difference to Components is that these can contain Application Logic)
- /src/reducers containing the main Reducer
- /src/redux containing ducks Files Ducks: Redux Reducer Bundles
- /src/store containing the Redux Store configuration
- /src/styles containing all the less Files, in this folder the global Less Files are placed e.g.
variables.less
orglobals.less
- /src/styles/components less Files related to Components
- /src/styles/container less Files related to Pages
- /src/util containing utils needed in the Application
- /tools containing Tools needed to build this Application
- /src containing all editable source files