aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/design-system/vite.config.js
diff options
context:
space:
mode:
authorDavid Cho-Lerat <david.cho-lerat@sonarsource.com>2023-02-13 19:02:44 +0100
committersonartech <sonartech@sonarsource.com>2023-02-21 20:03:00 +0000
commit294bda258ce44453fd7b9aae85b713551fa73f37 (patch)
tree917b1174d13c5ad0cc1233103779110af8d1e615 /server/sonar-web/design-system/vite.config.js
parent5af56eda84b62f4602578d195207cd108da0487a (diff)
downloadsonarqube-294bda258ce44453fd7b9aae85b713551fa73f37.tar.gz
sonarqube-294bda258ce44453fd7b9aae85b713551fa73f37.zip
SONAR-18491 Set up the build system for the new UI
Diffstat (limited to 'server/sonar-web/design-system/vite.config.js')
-rw-r--r--server/sonar-web/design-system/vite.config.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/server/sonar-web/design-system/vite.config.js b/server/sonar-web/design-system/vite.config.js
new file mode 100644
index 00000000000..a1b283bbe0e
--- /dev/null
+++ b/server/sonar-web/design-system/vite.config.js
@@ -0,0 +1,79 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2023 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+import react from '@vitejs/plugin-react';
+import autoprefixer from 'autoprefixer';
+import { resolve } from 'node:path';
+import postCssCalc from 'postcss-calc';
+import postCssCustomProperties from 'postcss-custom-properties';
+import tailwind from 'tailwindcss';
+import { defineConfig } from 'vite';
+import dts from 'vite-plugin-dts';
+import { getCustomProperties } from '../config/utils';
+import babelConfig from './babel.config';
+import * as packageJson from './package.json';
+
+const customProperties = getCustomProperties();
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ build: {
+ lib: {
+ entry: resolve('src', 'components/index.ts'),
+ name: 'MIUI',
+ formats: ['es'],
+ fileName: (_format) => `index.js`,
+ },
+ outDir: 'lib',
+ rollupOptions: {
+ external: [...Object.keys(packageJson.peerDependencies)],
+ },
+ },
+ css: {
+ postcss: {
+ plugins: [
+ tailwind('../tailwind.config.js'),
+ autoprefixer,
+ postCssCustomProperties({
+ importFrom: { customProperties },
+ preserve: false,
+ }),
+ postCssCalc,
+ ],
+ },
+ },
+ esbuild: {
+ // https://github.com/vitejs/vite/issues/8644#issuecomment-1159308803
+ logOverride: { 'this-is-undefined-in-esm': 'silent' },
+ },
+ optimizeDeps: {
+ esbuildOptions: {
+ target: 'es2022',
+ },
+ },
+ plugins: [
+ react({
+ babel: babelConfig,
+ }),
+ dts({
+ include: ['src/components/'],
+ }),
+ ],
+});