⚠️ This document is out-of-date
A pluggable and extendable skeleton which help to integrate several existing web frameworks to create your own micro frontends out of the box with even zero configuration.
An architectural style where independently deliverable frontend applications are composed into a greater whole
Getting Started
mkdir hello && cd helloyo generator-caviarnpm run dev
Yeah, we have our first application
File Structure
project/
|-- app
|-- pages
|-- caviar.config
| |-- .env
| |-- client.env
| |-- index.js
|-- package.json
|-- ...
caviar
Thinking in The sections below is for development purpose
caviar
for your own business
Extend Config chain
How to write caviar plugins
API Documentation
const Sandbox Server ConfigLoader } =
new Sandbox(options)
- options
Object
- cwd
path
the current working directory - port?
number
server port - dev?
boolean=false
whether is for development purpose - serverClassPath?
path
the file path of theServer
class. Defaults to theServer
class path of thecaviar
project. - configLoaderClassPath?
path
the file path of theConfigLoader
class
- cwd
Creates a new sandbox. Sandbox is design to filter the environment variables.
await sandbox.start(): ChildProcess
Start the sandbox, and it will create a new Server
by passing {cwd, port, dev}
as options.
new Server(options)
- options
Object
- cwd
- port?
Number
options.port
will overrideconfig.port
ofcaviar.config.js
- dev?
- configLoaderClassPath?
Create a new Server
const server = cwd dev: true await serverserver
await server.ready(): this
Initialize the server
server.callback(): Function
Returns a callback function suitable for the http.createServer()
method to handle a request.
This method must NOT be called before the server is ready (await server.ready()
)
server.listen(port?): Promise
- port?
number
optional server port. Ifport
is specified, it will overrideoptions.port
. - callback?
Function
License
Thanks @reallinfo for the great logo