Contributing
Project description
Pre-requisites: Node >=18, Yarn
Dockview is a layout manager library designed to provide a complete layouting solution. It is written in plain TypeScript and can be used without any framework although an extensive React wrapper has always and will always be provided for those using the React framework.
The project is hosted on GitHub and developed within a Monorepo powered by Lerna.
It is developed using the yarn
package manager since at the time of creation yarn
was far superior when it came to managing monorepos.
The Monorepo contains three packages:
packages/dockview-core
The core project is entirely written in plain TypeScript without any frameworks or dependencies and it's source-code can be found
within the dockview-core
package which is also published to npm.
packages/dockview
A complete collection of React components for use through the React framework to use dockview seamlessly
and is published to npm. It depends explicitly on dockview-core
so there is no need to additionally install dockview-core
.
Dockview was originally a React-only library which is why the React version maintains the name
dockview
after splitting the core logic into a seperate package nameddockview-core
.
packages/docs
This package contains the code for this documentation website and examples hosted through CodeSandbox. It is not a published package on npm.
Run the project locally
- After you have cloned the project from GitHub run
yarn
at the root of the project which will install all project dependencies. - In order build
packages/dockview-core
thenpackages/dockview
. - Run the docs website through
npm run start
in thepackages/docs
directory and go to http://localhost:3000 which will now be running the local copy ofdockview
that you have just built.
Examples
All examples can be found under packages/docs/sandboxes. Each example is an independently runnable example through CodeSandbox. Through the documentation you will see links to runnable CodeSandbox examples.
FAQ
Are there any plans to publish wrapper libraries for other frameworks such as Angular and Vue?
Currently no but this is open for contributors to try.