„Development/Frontend“ hinzufügen
parent
01390e8582
commit
0a904e9c62
|
@ -0,0 +1,66 @@
|
||||||
|
# Frontend Development
|
||||||
|
* [General](#general)
|
||||||
|
* [Useful commands](Development#commands)
|
||||||
|
* [Plugin](#plugin)
|
||||||
|
* [General development](Development)
|
||||||
|
|
||||||
|
## General
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
Useful commands for developing the frontend / frontend plugins
|
||||||
|
|
||||||
|
##### Start the app in development mode
|
||||||
|
Provides hot-code reloading, error reporting, etc.
|
||||||
|
```sh
|
||||||
|
yarn quasar dev
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Code formatting
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn pretty
|
||||||
|
```
|
||||||
|
|
||||||
|
##### File linting
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn lint
|
||||||
|
```
|
||||||
|
|
||||||
|
## Plugins
|
||||||
|
|
||||||
|
#### Build a Plugin
|
||||||
|
|
||||||
|
Create a new node.js project and add `@flaschengeist/api` as a peer dependency (e.g. `yarn add --peer '@flaschengeist/api'`).
|
||||||
|
If your plugin depends on an other plugin (e.g. you use the `@flaschengeist/users` plugin / stores),
|
||||||
|
then you have to add that plugin as a peer dependency too.
|
||||||
|
|
||||||
|
You need to define a main entry point for your plugin (e.g. `"main": "src/index.ts"` in your `package.json`) which exportes
|
||||||
|
a plugin descriptor as the default export (see `@flaschengeist/types` -> `FG_Plugin.Plugin`).
|
||||||
|
E.g.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { FG_Plugin } from '@flaschengeist/types';
|
||||||
|
import { routes } from './routes';
|
||||||
|
|
||||||
|
const plugin: FG_Plugin.Plugin = {
|
||||||
|
id: 'com.example.myplugin',
|
||||||
|
name: 'myplugin',
|
||||||
|
innerRoutes: routes,
|
||||||
|
// This are required backend plugins:
|
||||||
|
requiredModules: [['auth'], ['users'], ['roles']],
|
||||||
|
version: '0.0.1',
|
||||||
|
widgets: [
|
||||||
|
{
|
||||||
|
priority: 1,
|
||||||
|
name: 'greeting',
|
||||||
|
permissions: [],
|
||||||
|
widget: defineAsyncComponent(() => import('./components/Widget.vue')),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default plugin;
|
||||||
|
```
|
||||||
|
|
||||||
|
This will add a plugin providing a widget for the dashboard side and some routes.
|
Loading…
Reference in New Issue