mirror of
https://github.com/documenso/documenso.git
synced 2026-07-11 05:25:08 +10:00
73 lines
1.9 KiB
TypeScript
73 lines
1.9 KiB
TypeScript
import path from 'node:path';
|
|
import { lingui } from '@lingui/vite-plugin';
|
|
import { reactRouter } from '@react-router/dev/vite';
|
|
import autoprefixer from 'autoprefixer';
|
|
import tailwindcss from 'tailwindcss';
|
|
import { defineConfig } from 'vite';
|
|
import macrosPlugin from 'vite-plugin-babel-macros';
|
|
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
import tsconfigPaths from 'vite-tsconfig-paths';
|
|
|
|
/**
|
|
* Standalone Vite app for previewing Documenso emails.
|
|
*
|
|
* Emails render server-side through the real `renderEmailWithI18N` pipeline
|
|
* (see `app/routes/preview.tsx`), so the SSR config mirrors the main Remix app:
|
|
* Prisma, the tailwind config, and native modules stay external.
|
|
*/
|
|
export default defineConfig({
|
|
root: __dirname,
|
|
css: {
|
|
postcss: {
|
|
plugins: [tailwindcss(path.join(__dirname, 'tailwind.config.cjs')), autoprefixer],
|
|
},
|
|
},
|
|
server: {
|
|
port: parseInt(process.env.PORT || '3002', 10),
|
|
strictPort: true,
|
|
},
|
|
plugins: [
|
|
// Serve the email static assets (logo, icons) under `/static` so templates'
|
|
// `assetBaseUrl="/static"` resolves to the same images production uses.
|
|
viteStaticCopy({
|
|
targets: [
|
|
{
|
|
src: path.join(__dirname, '../static') + '/*',
|
|
dest: 'static',
|
|
},
|
|
],
|
|
}),
|
|
reactRouter(),
|
|
macrosPlugin(),
|
|
lingui(),
|
|
tsconfigPaths(),
|
|
],
|
|
ssr: {
|
|
noExternal: ['@documenso/email'],
|
|
external: [
|
|
'@napi-rs/canvas',
|
|
'@node-rs/bcrypt',
|
|
'@prisma/client',
|
|
'@documenso/tailwind-config',
|
|
'playwright',
|
|
'playwright-core',
|
|
'@playwright/browser-chromium',
|
|
'pdfjs-dist',
|
|
'@google-cloud/kms',
|
|
'@google-cloud/secret-manager',
|
|
],
|
|
},
|
|
optimizeDeps: {
|
|
exclude: [
|
|
'@napi-rs/canvas',
|
|
'@node-rs/bcrypt',
|
|
'sharp',
|
|
'playwright',
|
|
'playwright-core',
|
|
'@playwright/browser-chromium',
|
|
'lightningcss',
|
|
'fsevents',
|
|
],
|
|
},
|
|
});
|