diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 20ed818133d3c58c96a9c303fcdca480a7a8f814..ca04816ee710a846d2ebc973b518e6dd02750fac 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -575,12 +575,14 @@ YARN_INSTALLED_APPS = [ "vue-router@^3.5.2", "vite@^4.0.1", "vite-plugin-pwa@^0.14.1", + "vite-plugin-top-level-await@^1.2.2", "@vitejs/plugin-vue2@^2.2.0", "@rollup/plugin-node-resolve@^15.0.1", "@rollup/plugin-graphql@^2.0.2", "@rollup/plugin-virtual@^3.0.1", "rollup-plugin-license@^3.0.1", "vue-i18n@^8.0.0", + "browserslist-to-esbuild@^1.2.0", "@sentry/vue@^7.28.0", "prettier@^2.8.1", "eslint@^8.26.0", diff --git a/aleksis/core/vite.config.js b/aleksis/core/vite.config.js index 2283090317658bed826e7eb52fe7ef0df000375b..fcaf916e41decd4053c9805b8e310b9baa1a2ad8 100644 --- a/aleksis/core/vite.config.js +++ b/aleksis/core/vite.config.js @@ -29,11 +29,19 @@ import { nodeResolve } from "@rollup/plugin-node-resolve"; import graphql from "@rollup/plugin-graphql"; import virtual from "@rollup/plugin-virtual"; import { VitePWA } from "vite-plugin-pwa"; +import topLevelAwait from "vite-plugin-top-level-await"; +import browserslistToEsbuild from "browserslist-to-esbuild"; const license = require("rollup-plugin-license"); // Read the hints writen by `aleksis-admin vite` const django_values = JSON.parse(fs.readFileSync("./django-vite-values.json")); +// Browsers supported by us +const browsersList = [ + "defaults and supports es6-module", + ">0.2% in de and supports es6-module", +]; + /** * Generate code to import messages from a single AlekSIS app. */ @@ -98,7 +106,7 @@ export default defineConfig({ build: { outDir: path.resolve("./vite_bundles/"), manifest: true, - target: ["firefox102", "chrome108", "safari16"], + target: browserslistToEsbuild(browsersList), rollupOptions: { input: django_values.coreAssetDir + "/index.js", output: { @@ -160,6 +168,7 @@ export default defineConfig({ vue(), nodeResolve({ modulePaths: [path.resolve(django_values.node_modules)] }), graphql(), + topLevelAwait(), license({ // A package.json will be written here by `aleksis-admin vite` cwd: path.resolve(django_values.cacheDir),