Giter Club home page Giter Club logo

react-infra-ts's Introduction

React Infra - The Ultimate React Infrastructure Package

A comprehensive React infrastructure package for big-sized enterprise level applications, including all necessary modules and their configurations for React, TypeScript, Jest, Stylelint, ESLint, and Commitlint.

NPM License

Key Features

  • Robust React setup
  • TypeScript integration
  • Jest testing framework
  • Stylelint and ESLint for code linting
  • Commitlint for enforcing a conventional commit style

Quick Start

To use this package, all you need is an empty npm project. You can install the package by running the following command:

npm install react-infra

After installation, you can use the modules and configurations included in the package to set up a React application.

How to use

Webpack

You can use predefined webpack config or extend it with your own

Create a webpack.config.js file with followed

const { configs } = require('react-infra');

module.exports = (env) => configs.webpack(env);

or

const { configs } = require('react-infra');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = (env) => {
    const infraConfig = configs.webpack(env);
    const resultConfig = {
        ...infraConfig,
        plugins: [
            // predefined config rules
            ...infraConfig.plugins,

            // extend with own plugins using spread syntax
            new HtmlWebpackPlugin({
                template: 'src/index.html',

                // setting environment
                // with included DotEnv package
                BUILD_MODE: process.env.BUILD_MODE,
            }),
        ]
    }

    return resultConfig;
};

Then add the following scripts into package.json to start development

    ...
    "start": "webpack serve --env env=development",
    "build": "webpack --env env=production",
    ...

TS config

Create tsconfig.json file as below:

{
    "extends": "react-infra-ts/configs/tsconfig.json",
    "compilerOptions": {
        "baseUrl": "./",
        "rootDir": ".",
        "outDir": "dist"
    }
}

You have to specify baseUrl, rootDir and outDir here which comes relative to the default configuration file

ESlint

You can use predefined eslint config or extend it with your own options using spread syntax. Create .eslintrc.js file with the followed content:

const { configs } = require('react-infra');

module.exports = configs.eslint();

Used Modules

Contributing

We welcome contributions to this project. If you have any suggestions or bug reports, please open an issue or a pull request.

License

This project is licensed under the MIT license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.