Skip to content
This repository has been archived by the owner on Sep 2, 2020. It is now read-only.
/ react-template Public archive

Scalable starter boilerplate for React applications

License

Notifications You must be signed in to change notification settings

three11/react-template

Repository files navigation

GitHub issues GitHub last commit Build Status Analytics

React Template

Opinionated React starter template using Redux, React Router, Redux Saga, Styled Components, SCSS, PostCSS and more.

Dependencies

In order to use this setup you need to have installed the following dependencies:

  1. Node - min v8.15.0
  2. NPM - min v5.6.0 or
  3. Yarn - min v1.3.2
  4. Bash terminal (Default on OSX/Linux, GitBash or similar on Windows)

Download

You can download this setup directly and extract it.

Then navigate to the react-template folder and proceed with the rest of the instructions.

Install

yarn

# or

npm i

Develop

yarn start

# or

npm start

Build

yarn build

# or

npm run build

Details

JS

  1. Folder structure:

    • assets/ - all fonts, images, videos, etc.
    • components/ - stateless components.
    • containers/ - statefull components.
    • utilities/ - helpers and utility functions
    • index.html
    • index.js
    • reducers.js
    • sagas.js
    • store.js
  2. Latest EcmaScript support

    • Usage of the latest features in EcmaScript
    • Using Babel to transpile to ES5
    • Minification of the bundled file
    • Source maps
  3. Webpack aliases: Checkout the aliases property in the webpack.config.js file.

  4. Choose your style: CSS in JS using styled-components or SCSS files.

  5. Lint your files: ESLint and Stylelint included

  6. Tests using Jest. The Test environment has been configured so you don't have to

  7. Offline first - using Offline Plugin to cache important files and assets

  8. PWA ready - Install as a native app on Android and iOS

  9. Code splitting and lazy loading

Supported Browsers

This setup uses Browserslist to target browsers.

The default list of supported browsers is listed in the package.json file:

{
	"browserslist": ["> 1%", "last 2 versions"]
}

This means that supported browsers vary based on current usage data and current browser versions.

In general, this setup supports the two most recent versions of all browsers.

LICENSE

MIT