Vite plugin for Litestar
Project description
Litestar Vite
[!IMPORTANT] This plugin currently contains minimal features and is a work-in-progress
Installation
pip install litestar-vite
Usage
Here is a basic application that demonstrates how to use the plugin.
from __future__ import annotations
from pathlib import Path
from litestar import Controller, get, Litestar
from litestar.response import Template
from litestar.status_codes import HTTP_200_OK
from litestar_vite import ViteConfig, VitePlugin
class WebController(Controller):
opt = {"exclude_from_auth": True}
include_in_schema = False
@get(["/", "/{path:str}"],status_code=HTTP_200_OK)
async def index(self) -> Template:
return Template(template_name="index.html.j2")
vite = VitePlugin(config=ViteConfig(template_dir='templates/'))
app = Litestar(plugins=[vite], route_handlers=[WebController])
Create a template to serve the application in ./templates/index.html.h2
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--IE compatibility-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0"
/>
</head>
<body>
<div id="app"></div>
{{ vite_hmr() }} {{ vite('resources/main.ts') }}
</body>
</html>
Template initialization (Optional)
This is a command to help initialize Vite for your project. This is generally only needed a single time. You may also manually configure Vite and skip this step.
to initialize a Vite configuration:
❯ litestar assets init
Using Litestar app from app:app
Initializing Vite ──────────────────────────────────────────────────────────────────────────────────────────
Do you intend to use Litestar with any SSR framework? [y/n]: n
INFO - 2023-12-11 12:33:41,455 - root - commands - Writing vite.config.ts
INFO - 2023-12-11 12:33:41,456 - root - commands - Writing package.json
INFO - 2023-12-11 12:33:41,456 - root - commands - Writing tsconfig.json
Install Javascript/Typescript Packages
Install the packages required for development:
Note This is equivalent to the the npm install
by default. This command is configurable.
❯ litestar assets install
Using Litestar app from app:app
Starting Vite package installation process ──────────────────────────────────────────────────────────────────────────────────────────
added 25 packages, and audited 26 packages in 1s
5 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Development
To automatically start and stop the Vite instance with the Litestar application, you can enable the use_server_lifespan
hooks in the ViteConfig
.
Alternately, to start the development server manually, you can run the following
❯ litestar assets serve
Using Litestar app from app:app
Starting Vite build process ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> build
> vite build
vite v5.0.7 building for production...
✓ 0 modules transformed.
Note This is equivalent to the the npm run dev
command when hot_reload
is enabled. Otherwise it is equivalent to npm run build -- --watch
. This command is configurable.
Building for Production
❯ litestar assets build
Using Litestar app from app:app
Starting Vite build process ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> build
> vite build
vite v5.0.7 building for production...
✓ 0 modules transformed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file litestar_vite-0.2.9.tar.gz
.
File metadata
- Download URL: litestar_vite-0.2.9.tar.gz
- Upload date:
- Size: 194.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5e069af06f7e546c3a076ee391e8e846ebf13c8d67e786a8706ab3900d6a716 |
|
MD5 | 3ec63950f83ad9a93edb7a61e8eb8f2a |
|
BLAKE2b-256 | dd288aef76949824a069eb71ce4bca854e0f9fe3166f8c347f1816510351b5a0 |
File details
Details for the file litestar_vite-0.2.9-py3-none-any.whl
.
File metadata
- Download URL: litestar_vite-0.2.9-py3-none-any.whl
- Upload date:
- Size: 32.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e2933cfe7b03f81383da908de8759c090c9a15df7699319528afc34c735c97a |
|
MD5 | bde107df66a1a67cfdb3ef305189aa74 |
|
BLAKE2b-256 | 7b782dcddf6c3dd2923c4b9ce78af4f8a73f9c392874b2098d16156dcae12643 |