https://github.com/caviarjs/caviar
The skeleton of frameworks for micro frontends
https://github.com/caviarjs/caviar
backend-for-frontend framework micro-frontends skeleton
Last synced: 11 months ago
JSON representation
The skeleton of frameworks for micro frontends
- Host: GitHub
- URL: https://github.com/caviarjs/caviar
- Owner: caviarjs
- License: other
- Created: 2019-03-25T02:44:39.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-07-01T13:14:47.000Z (over 1 year ago)
- Last Synced: 2024-11-05T15:57:01.434Z (over 1 year ago)
- Topics: backend-for-frontend, framework, micro-frontends, skeleton
- Language: JavaScript
- Homepage:
- Size: 603 KB
- Stars: 21
- Watchers: 2
- Forks: 5
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- License: LICENSE
Awesome Lists containing this project
README
# 
[](https://travis-ci.org/caviarjs/caviar)
[](https://codecov.io/gh/caviarjs/caviar)
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.
`caviar` brings **web mesh** to the real world.
> An architectural style where independently deliverable frontend applications are composed into a greater whole
## Thinking in `caviar` about web mesh
> Why caviar?
****
> The sections below is for development purpose
## Extend `caviar` for your own business
### Config chain
## How to write caviar plugins
# API Documentation
## caviar(options).run(phase?)
```ts
await caviar(options: object).run(phase?: string): ChildProcess | void
```
- **phase?** `string='default'`
```js
const {
caviar
} = require('caviar')
caviar({
cwd: '/path/to/project',
preset: '@my/caviar-preset'
})
.run()
.catch(console.error)
```
### options
**Common options**
- **cwd** `path` the current working directory
- **dev?** `boolean=false` whether is for development purpose
- **preset?** `string` module id or absolute path of the preset
- **configFile?** `path` absolute path of the configuration file. `options.configFile` often takes the return value of `require.resolve()`
- **sandbox?** `boolean=false` whether to enable caviar sandbox
**Sandbox options**
- **env?** `object` extra environment key-value pairs.
- **stdio?** `(Array | string)='inherit'` the `options.stdio` option of [`child_process.fork`](https://nodejs.org/dist/latest/docs/api/child_process.html#child_process_child_process_fork_modulepath_args_options)
### Return Value
## License
[MIT](LICENSE)
****
Thanks @reallinfo for the great logo