Major Breaking Changes
All major changes can be done automatically with the new babel-upgrade tool. babel-upgrade is a new tool that automatically makes upgrade changes: currently with dependencies in package.json and .babelrc config.
- Drop support for un-maintained Node versions: 0.10, 0.12, 4, 5
- Introducing @babel namespace to differentiate official packages, so babel-core becomes @babel/core.
- Deprecation of any yearly presets (preset-es2015, etc).
- Dropped the “Stage” presets (@babel/preset-stage-0, etc) in favor of opting into individual proposals.
- Some packages have renames: any TC39 proposal plugin will now be -proposalinstead of -transform. So @babel/plugin-transform-class-properties becomes @babel/plugin-proposal-class-properties.
- Introduced a peerDependency on @babel/core for certain user-facing packages (e.g. babel-loader, @babel/cli, etc).
Typescript and JSX fragment support
npm install –save-dev @babel/typescript
The JSX fragment support in Babel 7 allows returning multiple children from a component’s render method. Fragments look like empty JSX tags. They let you group a list of children without adding extra nodes to the DOM.
There are a lot of new features in the works: plugin ordering, better validation/errors, speed, re-thinking loose/spec options, caching, using Babel asynchronously, etc. You can check out the roadmap doc for a more detailed version.
These are just a select few updates. The entire changes are available on the Babel blog.