I created and used this tool to create fast frontends using esbuild. It was experimental and is today irrlevant since we have tools like https://github.com/vitejs/vite, which I use on every frontends.
🪄 A simple "CreateReactApp-like", using esbuild, to bootstrap your React app
and npm scripts
.
> npx reactor
Usage: reactor <command>
Commands:
reactor create bootstrap your React app with initial files
reactor start run the local dev server
reactor build use esbuild to create the distribution files
reactor toc generate TOC for your documentation from your markdown files
First prepare your new project with a startup package.json:
> mkdir yourApp; cd yourApp
> npm i --save-dev @uralys/reactor
Let's create your boot files:
> npx reactor create
☢️ reactor updated you files successfully.
✅ you can now start your App
> npm run start:dev
You can now version and push your project to your repository
> git init
> git add .
> git commit -m "Initial commit from @uralys/reactor"
> git remote add origin https://github.com/your-new-repo
> git push origin master
Once your app is created, you can use:
npm run start:dev
to run a local server withesbuild
andlive-server
npm run build
to build you/public
distribution withesbuild
npm run toc
to generate TOC from you markdowns if you useReactor
to generate a documentation website. I'll document this later.
- add a sitemap config to generate your
sitemap.xml
- for Google configure your indexation on https://search.google.com/search-console
- for DuckDuckGo configure your indexation on Bing (import from google search-console) https://www.bing.com/webmasters
You can update reactor.config.js
:
{
esbuild: {
...esbuildOptions
},
documentation: {
source: './path/to/docs',
dist: './path/to/tocs'
},
start: {
hosts: ["platform.localhost"]
},
sitemap: {
publicPath = './public',
links = [],
hostname: 'https://your.domain',
outputName = 'sitemap.xml'
}
}
If your project uses dotenv
, call it from the top of reactor.config.js
import dotenv from 'dotenv';
dotenv.config();
- analyse perfs with https://pagespeed.web.dev/
- use
La Taverne
for your state management - add
reactrouter
- add
axios
for http requests - use this
auth0 guide
for the authentication - add animations with
react-spring
- use serverless!
- use
netlify
to deploy. (Note: setNODE_VERSION
in environnment vars)
> npm version patch
> ggpush --tags
> npm run release