-
Notifications
You must be signed in to change notification settings - Fork 184
Description
Currently, the project uses Gulp and Babel to produce the server and client libraries required to be imported by anyone using react-server. That means those libraries are transpiled down to es5 and end applications can't ship esnext code to browsers as they see fit.
This issue proposes the following:
- Use Rollup to bundle client and server libraries ending in '.esm.js' as ES Modules. These libraries would not be transpiled by Babel, just bundled by Rollup.
- This likely will apply to the following packages inside react-server:
- flab
- react-server-core-middleware
- react-server-data-bundle-cache
- react-server-middleware-json-response
- react-server
- Add these libraries to
package.jsonso that Webpack can find and use the ES Modules version when building the final application for the end-developer. - The end developer is then required to transpile the final application as they see fit.
All of this paves the way for further enhancements to how react-server leverages Webpack to bundle the final application and transpiles at compile time (not "publish" time for react-server). It further allows the end-developer to make custom decisions about what to transpile. For example, if all of the clients of my application use ES6 compatible browsers, I don't want to transpile everything down to ES5.
See the the article Webpack and Rollup: the same but different for conceptual details.