@cloudquery/plugin-config-ui-lib
Version:
Plugin configuration UI library for CloudQuery Cloud App
91 lines (83 loc) • 2.06 kB
JavaScript
import 'dotenv/config';
import react from '@vitejs/plugin-react-swc';
import { minify as htmlMinify } from 'html-minifier-terser';
import monacoEditorVitePlugin from 'vite-plugin-monaco-editor';
const monacoEditorPlugin = monacoEditorVitePlugin.default;
const envVariables = {};
for (const key of Object.keys(process.env)) {
if (
(key.startsWith('REACT_APP_') || key.startsWith('VERCEL_')) &&
process.env[key] !== undefined
) {
envVariables[key] = process.env[key];
}
}
export default {
base: './',
build: {
commonjsOptions: {
sourceMap: true,
},
outDir: 'build',
rollupOptions: {
output: {
manualChunks: {
'monaco-editor': ['monaco-editor'],
'monaco-yaml': ['monaco-yaml'],
},
},
},
sourcemap: true,
},
define: {
'process.env': JSON.stringify(envVariables),
},
optimizeDeps: {
include: ['monaco-editor', 'monaco-yaml'],
},
plugins: [
react(),
monacoEditorPlugin({
customWorkers: [
{
entry: 'monaco-yaml/yaml.worker',
label: 'yaml',
},
],
languageWorkers: ['editorWorkerService'],
}),
{
name: 'html-transform',
transformIndexHtml(html) {
if (process.env.NODE_ENV === 'production') {
return htmlMinify(html, {
collapseWhitespace: true,
minifyCSS: true,
minifyJS: true,
minifyURLs: true,
removeComments: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
});
}
return html;
},
},
],
server: {
port: 3001,
},
test: {
environment: 'jsdom',
globals: true,
setupFiles: './src/tests/setupTests.ts',
include: ['src/tests/**/*.test.ts', 'src/tests/**/*.test.tsx'],
alias: [
{
find: /^monaco-editor$/,
replacement: '/node_modules/monaco-editor/esm/vs/editor/editor.api',
},
],
},
};