Giter VIP home page Giter VIP logo

chopfitzroy / tsup-react-package-starter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from timmikeladze/tsup-react-package-starter

1.0 0.0 0.0 1.43 MB

Create, bundle & publish React packages with ease. Typescript, CSS, Jest & Storybook support out of the box. Integrates with Github releases and automatically publishes to NPM. Code bundled with tsup.

License: MIT License

Shell 11.97% JavaScript 59.19% TypeScript 28.84%

tsup-react-package-starter's Introduction

React Package Starter

This is a simple and slightly opinionated starter kit for developing and publishing React packages. It comes with a several pre-configured tools, so you could focus on coding instead of configuring a project for the nth time.

Getting started

npx degit TimMikeladze/tsup-react-package-starter my-react-package

yarn && yarn dev

❗Important note: This project uses yarn for managing dependencies.

What's included?

  • ⚡️tsup - The simplest and fastest way to bundle your TypeScript libraries. Used to bundle package as ESM and CJS modules.
  • 📖 Storybook - Build UI components and pages in isolation. It streamlines UI development, testing, and documentation.
  • 🧪 Jest - A testing framework for JavaScript. Preconfigured to work with TypeScript and JSX.
  • 🔼 Release - Release is a command line tool to automatically generate a new GitHub Release and populates it with the changes (commits) made since the last release.
  • 🐙 Test & Publish via Github Actions - CI/CD workflows for your package. Run tests on every commit plus integrate with Github Releases to automate publishing package to NPM and Storybook to Github Pages.
  • 📄 Commitizen — When you commit with Commitizen, you'll be prompted to fill out any required commit fields at commit time.
  • 🚓 Commitlint — Checks that your commit messages meet the conventional commit format.
  • 🐶 Husky — Running scripts before committing.
  • 🚫 lint-staged — Run linters on git staged files
  • 🖌 Renovate - Universal dependency update tool that fits into your workflows. Configured to periodically check your dependencies for updates and send automated pull requests.
  • ☑️ ESLint - A linter for JavaScript. Includes a simple configuration for React projects based on the recommended ESLint and AirBnB configs.

Usage

Developing

Watch and rebuild code with tsup and runs Storybook to preview your UI during development.

yarn dev

Run tests with jest when changes are detected.

yarn test:watch

To run all tests once without watching for changes.

yarn test

Build package with tsup for production.

yarn build

Committing

When you are ready to commit simply run the following command to get a well formatted commit message. All staged files will automatically be linted and fixed as well.

yarn commit

Publishing

Create a semantic version tag and publish to Github Releases. When a new release is detected a Github Action will automatically build the package and publish it to NPM. Additionally, a Storybook will be published to Github pages.

Learn more about how to use the release command here.

yarn release <optional semver type>

❗Important note: in order to publish package to NPM you must add your token as a Github Action secret. Learn more on how to configure your repository and publish packages through Github Actions here.

tsup-react-package-starter's People

Contributors

timmikeladze avatar renovate[bot] avatar renovate-bot avatar dependabot[bot] avatar

Stargazers

Roman avatar

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.