cra-boilerplate

1.0.2 • Public • Published

cra-boilerplate

This project is an Create React App - v1.1.1 boilerplate with integration of Redux, React Router, Redux observable & Reactstrap(Bootstrap v4) and Scss for quick start enterprise level applications.

Build Status npm Packagist

Demo

Before starting with project, I strongly recommended to headover CRA documentation.

Integrations

This project comes with integration of -

Added

  • Scss
  • Domain-style for code structure

Getting Started

  1. Clone this repo

https://github.com/mohandere/cra-boilerplate.git

  1. To run, go to project folder and run

$ npm install or $ yarn install (if you are using yarn)

  1. Now start dev server by running -

$ npm run start or $ yarn start

  1. visit - http://localhost:3000/

To create production ready codes -

$ npm run build

for more commands refer package.json

Roadmap

Before starting development please go through -

Code/Directory structure

Refer src/home/ module for an ideal directory structure

Project uses Domain-style for code structure-

Domain-style : separate folders per feature or domain, possibly with sub-folders per file type

For more details refer /src/home folder.

Reference -

Common components

Place all common components such as Header/Footer in src/common/components folder.

Adding new Module/Feature

  • Create a Module/Feature folder at src/ like - - src/home Feature folder must contain booststrap file named index.js and css file 'style.css' at root

Like -

  • src/home/index.js
  • src/home/style.css

Next as per need, add sub folders like -

  • src/home/actions/
  • src/home/reducers/
  • src/home/epics/
  • src/home/containers/
  • src/home/components/

Actions

  • Create folder named actions inside Feature folder like - src/home/actions
  • Place actionTypes.js which contains all actions to be exported

Reducers

  • Create folder named reducers inside Feature folder like - src/home/reducers
  • Place index.js which combines all reducers using combineReducers

Epics

  • Create folder named epics inside feature/domain folder like - src/home/epics
  • Place index.js which combines all epics using combineEpics

Ajax Handling

This boierplate comes with rxjs to handle ajax. Additionally as per need we can use other libs like axios.

Using Rxjs DOM api for ajax see file - rxjs/observable/dom/ajax AjaxObservable

Styling

we are using scss Preprocessor. Create a feature/domain specfic scss file, example - src/home/style.scss

After compilation the new corresponding CSS file next to it. example - src/home/style.css

Finally you can import that css file in index.js file example - src/home/index.js will import src/home/style.css

Deployment

Refer deployment section from CRA doc.

Something Missing?

File an issue here.

License

MIT

Package Sidebar

Install

npm i cra-boilerplate

Weekly Downloads

3

Version

1.0.2

License

MIT

Unpacked Size

106 kB

Total Files

38

Last publish

Collaborators

  • mohandere