Roadmap for react-scripts@2.0
Created by: gaearon
We have just released react-scripts@1.1.0
and, aside from critical vulnerabilities or similar issues, we intend this to be the last 1.x release. Our work on the 2.x release of react-scripts
is in the next
branch, and we switched it to be the default on GitHub. This way people who automatically sync their forks with master
will only get non-breaking updates until the next
branch is truly ready.
Already Merged
So what’s gonna be in 2.x? Here’s a few big things that are already in the next branch:
- Babel 7 (https://github.com/facebookincubator/create-react-app/pull/3522)
- Jest 22 (https://github.com/facebookincubator/create-react-app/pull/3124)
- Babel Macros (https://github.com/facebookincubator/create-react-app/pull/3675)
- ES6-compatible Uglify (https://github.com/facebookincubator/create-react-app/pull/3618)
- Configurable Target Browsers (JS: https://github.com/facebookincubator/create-react-app/pull/3770, CSS: https://github.com/facebookincubator/create-react-app/pull/3644)
- Compile
node_modules
with Env Preset (https://github.com/facebookincubator/create-react-app/pull/3776) - Parallelization of Babel (https://github.com/facebookincubator/create-react-app/pull/3778)
- Preflight Dependency Check (https://github.com/facebookincubator/create-react-app/pull/3771)
- Opt-in support for CSS Modules (https://github.com/facebookincubator/create-react-app/pull/2285)
- Opt-in support for Sass (https://github.com/facebook/create-react-app/pull/4195)
- SVG as React components (https://github.com/facebookincubator/create-react-app/pull/3718)
- Remove
propTypes
definitions in the production build (https://github.com/facebookincubator/create-react-app/pull/3818) - Service workers are now opt-in (https://github.com/facebookincubator/create-react-app/issues/2554)
- Support for Lerna or Yarn Workspaces (https://github.com/facebookincubator/create-react-app/issues/1333)
Very Likely to Land in 2.0 (But Might Need Your Help)
There are many more things we want to do but it will require help from the community. For now, they’re optimistically tagged with a 2.0.0
milestone (issues, PRs) but it’s likely we’ll only get to some of them. If you feel strongly about any of them, look at these issues, offer help if you’d like to increase their changes of getting landed, provide feedback to people who submit PRs, help them with planning and design, etc. What gets merged in the end really depends on your participation.
I feel strongly that these are blockers that should get into 2.0:
- Warn about duplicate dependencies (https://github.com/facebookincubator/create-react-app/pull/2011)
- More end-to-end test coverage for compiling
node_modules
(https://github.com/facebookincubator/create-react-app/issues/3777, needs PRs)
They’re relatively fleshed out although Sass will need somebody to make a PR once other pieces are in place. We should also figure out a way to make Sass work with CSS Modules. We’ll also need a PR for making service workers opt-in.
Issues and PRs That Need More Work and Discussion
These look less fleshed out to me and might need more discussion, design, and implementation work:
- Long term caching (https://github.com/facebookincubator/create-react-app/issues/2206, we have a PR in https://github.com/facebookincubator/create-react-app/issues/2206 but maybe we want https://github.com/webpack/webpack/pull/6281 instead? needs somebody to figure out the tradeoffs)
- Add a separate lint script (https://github.com/facebookincubator/create-react-app/pull/2729)
- Serve development from the same path as production (https://github.com/facebookincubator/create-react-app/pull/1887, broken hot reloading seems a bit wonky to me but maybe you can convince me otherwise)
- Refuse to build when importing transitive dependencies (https://github.com/facebookincubator/create-react-app/pull/1752, needs testing and potentially someone picking it up)
Please Participate!
So, what do you think? Does this list look exciting to you? If you want to help, please participate. I don’t expect that I’ll have a ton of time to work on all of this personally, but we have a really great community and I hope you can help us flesh out these proposals. If you also want to help maintaining the project (and have some experience maintaining open source projects; not necessarily large ones) please also let us know.
☢ ️ How Can I Test This Now? ☢ ️
We're happy you'd like to test the next version of react-scripts
! Before getting into the details, we'd like to make you aware of a few things:
- Features may be broken or not work as expected
- There will be more breaking changes introduced before the final release
⚠ ️ - Documentation for new features is still sparse, so look through the pull requests for how they're expected to work
You can install the latest alpha version of react-scripts
using one of the following commands:
$ # Create a new application
$ npx create-react-app@next --scripts-version=2.0.0-next.2150693d app-name
$ # Upgrade an existing application
$ yarn upgrade react-scripts@2.0.0-next.2150693d
Known Issues in 2.x Alphas
None, currently.
Please report any other bugs you encounter or behavior you believe to be incorrect. Have fun!