🌏 Create React App companion for universal app. No eject, zero config, Streaming SSR with Suspense. React 18 ready
MIT License
Create React App companion for universal app. No eject, zero config with customization, supports string and node stream API
react-scripts
, not as replacement# Create new cra
create-react-app myapp
cd myapp
# Install new cra-universal
yarn add -D cra-universal
# Install peer dependency
yarn add @cra-express/core [email protected]
# Install new cra-universal
yarn add -D cra-universal
# Install peer dependency
yarn add @cra-express/core [email protected]
# init custom server (optional)
yarn run cra-universal init
#This will copy ./templates/server into the current directory (it should be run on CRA client root)
Please update your render method on src/index.js
// before
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
// after
ReactDOM.hydrateRoot(document.getElementById('root'), <App />);
# Start CRA client
npm start
## Start CRA server, then open http://localhost:3001 in your browser
npx cra-universal start
# Change directory to your project root first, and run:
npx cra-universal build
# This command will build both client and server and put them into `./dist`
# Run locally:
# $ cd dist && npm i
# $ npm run serve
npm install --production
on the copied /dist
, but this time you don't need to install its devDependencies
If you like this project, please kindly support it by becoming a patron at my Patreon page. Thanks!
This project exists thanks to all the people who contribute. [Contribute].
Become a financial contributor and help us sustain our community. [Contribute]
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
MIT