Skip to content
Snippets Groups Projects
Verified Commit d81dfc30 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Refactor vite call out into utility function

parent 79fd0e98
No related branches found
No related tags found
1 merge request!1132Resolve "Evaluate use of Vite instead of Webpack"
import json
import os
import shutil
from django.conf import settings
from django_yarnpkg.management.base import BaseYarnCommand
from django_yarnpkg.yarn import yarn_adapter
from ...util.frontend_helpers import get_apps_with_assets
from ...util.frontend_helpers import run_vite, write_vite_values
class Command(BaseYarnCommand):
......@@ -17,23 +15,10 @@ class Command(BaseYarnCommand):
super(Command, self).handle(*args, **options)
# Inject settings into Vite
vite_values = {
"static_url": settings.STATIC_URL,
}
# Write rollup entrypoints for all apps
vite_values["entrypoints"] = {
app: os.path.join(path, "index")
for app, path in get_apps_with_assets().items()
}
vite_values["entrypoints"]["core"] = os.path.join(settings.BASE_DIR, "aleksis", "core", "assets", "index")
with open(os.path.join(settings.NODE_MODULES_ROOT, "django-vite-values.json"), "w") as out:
json.dump(vite_values, out)
write_vite_values(os.path.join(settings.NODE_MODULES_ROOT, "django-vite-values.json"))
# Install Node dependencies
yarn_adapter.install(settings.YARN_INSTALLED_APPS)
# Run Vite
config_path = os.path.join(settings.BASE_DIR, "aleksis", "core", "vite.config.js")
shutil.copy(config_path, settings.NODE_MODULES_ROOT)
mode = "development" if settings.DEBUG else "production"
yarn_adapter.call_yarn(["run", "vite", "build", "-m", mode])
# Run Vite build
run_vite(["build"])
import json
import os
import shutil
from typing import Any, Optional, Sequence
from django.conf import settings
from django_yarnpkg.yarn import yarn_adapter
from .core_helpers import get_app_module, get_app_packages
......@@ -17,6 +22,39 @@ def get_apps_with_assets():
return assets
def write_vite_values(out_path: str) -> dict[str, Any]:
vite_values = {
"static_url": settings.STATIC_URL,
}
# Write rollup entrypoints for all apps
vite_values["entrypoints"] = {
app: os.path.join(path, "index") for app, path in get_apps_with_assets().items()
}
vite_values["entrypoints"]["core"] = os.path.join(
settings.BASE_DIR, "aleksis", "core", "assets", "index"
)
with open(out_path, "w") as out:
json.dump(vite_values, out)
def run_vite(args: Optional[Sequence[str]] = None) -> None:
args = list(args) if args else []
config_path = os.path.join(settings.BASE_DIR, "aleksis", "core", "vite.config.js")
shutil.copy(config_path, settings.NODE_MODULES_ROOT)
mode = "development" if settings.DEBUG else "production"
args += ["-m", mode]
log_level = settings.LOGGING["root"]["level"]
if settings.DEBUG or log_level == "DEBUG":
args.append("-d")
log_level = {"INFO": "info", "WARNING": "warn", "ERROR": "error"}.get(log_level, "silent")
args += ["-l", log_level]
yarn_adapter.call_yarn(["run", "vite"] + args)
def get_language_cookie(code: str) -> str:
"""Build a cookie string to set a new language."""
cookie_parts = [f"{settings.LANGUAGE_COOKIE_NAME}={code}"]
......
......@@ -19,6 +19,9 @@ export default defineConfig({
plugins: [nodeResolve({modulePaths: [path.resolve("./node_modules")]}), graphql()],
},
},
server: {
strictPort: true,
},
plugins: [vue()],
resolve: {
alias: {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment