2021-07-17 05:38:44 +08:00
|
|
|
/*
|
2024-09-06 16:22:13 +08:00
|
|
|
Copyright 2021-2024 New Vector Ltd.
|
2021-07-17 05:38:44 +08:00
|
|
|
|
2024-09-06 16:22:13 +08:00
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
Please see LICENSE in the repository root for full details.
|
2021-07-17 05:38:44 +08:00
|
|
|
*/
|
|
|
|
|
2021-12-18 08:30:10 +08:00
|
|
|
import { defineConfig, loadEnv } from "vite";
|
2021-08-20 03:11:12 +08:00
|
|
|
import svgrPlugin from "vite-plugin-svgr";
|
2022-02-03 13:48:44 +08:00
|
|
|
import htmlTemplate from "vite-plugin-html-template";
|
2024-11-14 18:07:21 +08:00
|
|
|
import { codecovVitePlugin } from "@codecov/vite-plugin";
|
2023-09-19 00:02:35 +08:00
|
|
|
import { sentryVitePlugin } from "@sentry/vite-plugin";
|
2023-07-01 06:21:18 +08:00
|
|
|
import react from "@vitejs/plugin-react";
|
2023-07-12 19:55:21 +08:00
|
|
|
import basicSsl from "@vitejs/plugin-basic-ssl";
|
2021-07-17 05:22:03 +08:00
|
|
|
|
|
|
|
// https://vitejs.dev/config/
|
2021-12-18 08:30:10 +08:00
|
|
|
export default defineConfig(({ mode }) => {
|
|
|
|
const env = loadEnv(mode, process.cwd());
|
|
|
|
|
2023-01-03 18:48:48 +08:00
|
|
|
const plugins = [
|
2023-07-01 06:21:18 +08:00
|
|
|
react(),
|
2023-07-12 19:55:21 +08:00
|
|
|
basicSsl(),
|
2023-09-09 03:39:10 +08:00
|
|
|
svgrPlugin({
|
|
|
|
svgrOptions: {
|
|
|
|
// This enables ref forwarding on SVGR components, which is needed, for
|
|
|
|
// example, to make tooltips on icons work
|
|
|
|
ref: true,
|
|
|
|
},
|
|
|
|
}),
|
2023-01-03 18:48:48 +08:00
|
|
|
htmlTemplate.default({
|
|
|
|
data: {
|
|
|
|
title: env.VITE_PRODUCT_NAME || "Element Call",
|
|
|
|
},
|
|
|
|
}),
|
2024-11-14 18:07:21 +08:00
|
|
|
|
|
|
|
codecovVitePlugin({
|
|
|
|
enableBundleAnalysis: process.env.CODECOV_TOKEN !== undefined,
|
|
|
|
bundleName: "element-call",
|
|
|
|
uploadToken: process.env.CODECOV_TOKEN,
|
|
|
|
}),
|
2023-01-03 18:48:48 +08:00
|
|
|
];
|
|
|
|
|
|
|
|
if (
|
|
|
|
process.env.SENTRY_ORG &&
|
|
|
|
process.env.SENTRY_PROJECT &&
|
|
|
|
process.env.SENTRY_AUTH_TOKEN &&
|
|
|
|
process.env.SENTRY_URL
|
|
|
|
) {
|
|
|
|
plugins.push(
|
|
|
|
sentryVitePlugin({
|
|
|
|
include: "./dist",
|
|
|
|
release: process.env.VITE_APP_VERSION,
|
2023-10-11 22:42:04 +08:00
|
|
|
}),
|
2023-01-03 18:48:48 +08:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2021-12-18 08:30:10 +08:00
|
|
|
return {
|
2023-07-01 06:21:18 +08:00
|
|
|
server: {
|
|
|
|
port: 3000,
|
|
|
|
},
|
2022-04-28 03:11:59 +08:00
|
|
|
build: {
|
|
|
|
sourcemap: true,
|
|
|
|
},
|
2023-01-03 18:48:48 +08:00
|
|
|
plugins,
|
2021-12-18 08:30:10 +08:00
|
|
|
resolve: {
|
2022-07-15 23:24:38 +08:00
|
|
|
alias: {
|
|
|
|
// matrix-widget-api has its transpiled lib/index.js as its entry point,
|
|
|
|
// which Vite for some reason refuses to work with, so we point it to
|
|
|
|
// src/index.ts instead
|
|
|
|
"matrix-widget-api": "matrix-widget-api/src/index.ts",
|
|
|
|
},
|
2022-01-22 05:21:23 +08:00
|
|
|
dedupe: [
|
|
|
|
"react",
|
|
|
|
"react-dom",
|
|
|
|
"matrix-js-sdk",
|
|
|
|
"react-use-measure",
|
2023-12-02 06:43:09 +08:00
|
|
|
// These packages modify the document based on some module-level global
|
|
|
|
// state, and don't play nicely with duplicate copies of themselves
|
|
|
|
// https://github.com/radix-ui/primitives/issues/1241#issuecomment-1847837850
|
|
|
|
"@radix-ui/react-focus-guards",
|
|
|
|
"@radix-ui/react-dismissable-layer",
|
2022-01-22 05:21:23 +08:00
|
|
|
],
|
2021-10-01 02:27:44 +08:00
|
|
|
},
|
2021-12-18 08:30:10 +08:00
|
|
|
};
|
2021-07-17 05:38:44 +08:00
|
|
|
});
|