/react-starter-kit

React Starter Kit - a skeleton for a typical web application ("isomorphic" SPA) built with Facebook's React.js library and utilizing Flux architecture. It is also powered by common front-end dev tools: Gulp, Webpack, BrowserSync...

Primary LanguageJavaScriptMIT LicenseMIT

Facebook React Starter Kit

Build Status Dependency Status devDependency Status Tips Gitter

This project template is a skeleton for a typical web application or single-page application (SPA) based on Facebook React. You can use it to quickly bootstrap your web application projects. It contains only client-side components and development tools and is recommended to be paired with a server-side project similar to ASP.NET Web Application Starter Kit.

Facebook React Starter Kit

Source: https://github.com/kriasoft/react-starter-kit

Directory Layout

.
├── /build/                     # The folder for compiled output
├── /config/                    # Configuration files for Webpack, Karma etc.
├── /docs/                      # Documentation files
├── /node_modules/              # Node.js-based dev tools and utilities
├── /src/                       # The source code of the application
│   ├── /actions/               # Action methods that allow to trigger a dispatch to stores
│   ├── /assets/                # Static files which don't require pre-processing
│   ├── /constants/             # Enumerations used in action methods and stores
│   ├── /components/            # React components. E.g. Navbar.jsx
│   ├── /images/                # Graphics (.png, .jpg, .svg etc.)
│   ├── /layouts/               # Layouts for web pages
│   ├── /pages/                 # Web pages. E.g. Profile.jsx (or .html, .jade etc.)
│   ├── /stores/                # Stores contain the application state and logic
│   ├── /styles/                # LESS style sheets (or SASS/SCSS, Stylus etc.)
│   ├── /App.js                 # Entry point of your web application
│   └── /AppDispatcher.js       # The central hub that manages all data flow
├── /test/                      # Unit, integration and load tests
│   ├── /e2e/                   # End-to-end tests
│   └── /unit/                  # Unit tests
│── gulpfile.js                 # Configuration file for automated builds
└── package.json                # The list of 3rd party libraries and tools

Getting Started

Just clone or fork the repo and start hacking:

$ git clone -o upstream https://github.com/kriasoft/react-starter-kit.git MyApp
$ cd MyApp
$ npm install -g gulp           # Install Gulp task runner globally
$ npm install                   # Install Node.js components listed in ./package.json

How to Build

$ gulp build                    # or, `gulp build --release`

By default, it builds in debug mode. If you need to build in release mode, add --release flag.

How to Run

$ gulp                          # or, `gulp --release`

This will start a lightweight development server with LiveReload and synchronized browsing support across multiple devices and browsers.

How to Deploy

$ gulp deploy                   # or, `gulp deploy --production`

You can deploy to different destinations by adding a corresponding flag. For example --production or --staging etc. See the 'deploy' task in gulpfile.js.

How to Update

You can always fetch and merge the recent changes from this repo back into your own project:

$ git checkout master
$ git fetch upstream
$ git merge upstream/master
$ npm install

Running Unit Tests

Jest tests are located in the tests directory. Run them with this npm script:

$ npm test

Learn More

Support

Have questions, feedback or need help? Contact support@kriasoft.com or schedule a mentoring session on codementor.io/koistya.

Copyright

Source code is licensed under the MIT License. See LICENSE.txt file in the project root. Documentation to the project is licensed under the CC BY 4.0 license. React logo image is a trademark of Facebook, Inc.