diff options
author | David Cho-Lerat <david.cho-lerat@sonarsource.com> | 2023-02-13 19:02:44 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-02-21 20:03:00 +0000 |
commit | 294bda258ce44453fd7b9aae85b713551fa73f37 (patch) | |
tree | 917b1174d13c5ad0cc1233103779110af8d1e615 /server/sonar-web/design-system/vite.config.js | |
parent | 5af56eda84b62f4602578d195207cd108da0487a (diff) | |
download | sonarqube-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.js | 79 |
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/'], + }), + ], +}); |