1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/docs/extensions/get-started/overview.md
Sebastian Malton 49a01b7922 Fix Extension Docs (#2377)
Co-authored-by: Jim Ehrismann <40840436+jim-docker@users.noreply.github.com>
2021-04-19 11:46:07 -04:00

28 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Extension Development Overview
This is a general overview to how the development of an extension will proceed.
For building extensions there will be a few things that you should have installed, and some other things that might be of help.
### Required:
- [Node.js](https://www.nodejs.org/en/)
- [Git](https://www.git-scm.com/)
- Some sort of text editor we recommend [VSCode](https://code.visualstudio.com/)
- We use [Webpack](https://www.webpack.js.org/) for compilation.
All extension need to be at least compatible with a webpack system.
### Recommended:
All Lens extensions are javascript packages.
We recommend that you program in [Typescript](https://www.typescriptlang.org/) because it catches many common errors.
Lens is a standard [Electron](https://www.electronjs.org/) application with both main and renderer processes.
An extension is made up of two parts, one for each of Lens's core processes.
When an extension is loaded, each part is first loaded and issues a notification that it has been loaded.
From there, the extension can start doing is work.
Lens uses [React](https://www.reactjs.org/) as its UI framework and provides some of Lens's own components for reuse with extensions.
An extension is responsible for the lifetime of any resources it spins up.
If an extension's main part starts new processes they all must be stopped and cleaned up when the extension is deactivated or unloaded.
See [Your First Extension](your-first-extension.md) to get started.