caviar
v6.0.1
Published
A pluggable and extendable web framework which integrates React, Next and Koa to create your own web application out of the box with even zero configuration
Downloads
31
Maintainers
Readme
⚠️ 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 hello
yo generator-caviar
npm run dev
Yeah, we have our first application
File Structure
project/
|-- app
|-- pages
|-- caviar.config
| |-- .env
| |-- client.env
| |-- index.js
|-- package.json
|-- ...
Thinking in caviar
The sections below is for development purpose
Extend caviar
for your own business
Config chain
How to write caviar plugins
API Documentation
const {
Sandbox,
Server,
ConfigLoader
} = require('caviar')
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 = new Server({
cwd,
dev: true
})
await server.ready()
server.listen(8888)
await server.ready(): this
Initialize the server
server.callback(): Function
Returns a callback function suitable for the http.createServer()
method to handle a request.
require('http')
.createServer(server.callback())
.listen(8888)
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