Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • C create-react-app
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,547
    • Issues 1,547
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 417
    • Merge requests 417
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Meta
  • create-react-app
  • Merge requests
  • !2756

Plugin system

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Administrator requested to merge github/fork/Timer/typescript into master Jul 10, 2017
  • Overview 18
  • Commits 26
  • Pipelines 0
  • Changes 12

Created by: Timer

I'd like to preface this by stating that it is very likely a system like this may never be added to create-react-app, and is simply being showcased to create discussion around the feasibility of such an idea.

A plugin system is something which proposes to solve many problems.

For instance, we'd like to be able to add support for things like Relay, without increasing the initial installation size of the build tooling.

This could also potentially be applied to things like TypeScript, Sass, et al.

Design goals:

  1. Zero-configuration, opt-in additional features
  2. Simple setup (yarn add react-scripts-plugin-relay)
  3. Transparent to users who eject

Design constraints:

  1. Do not increase the initial installation size with excess modules
  2. Under no circumstances retain a "plugin" system when ejecting; everything must be flattened into a single file

This PR introduces a POC plugin system with initial support for TypeScript.

TODO

  • Install plugin dependencies when ejecting
  • Add eject step for plugins (copy files [e.g. tsconfig.json], etc)
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/Timer/typescript