첫 커밋
This commit is contained in:
112
vite.config.mjs
Normal file
112
vite.config.mjs
Normal file
@@ -0,0 +1,112 @@
|
||||
import * as path from 'path';
|
||||
import { sentryVitePlugin } from '@sentry/vite-plugin';
|
||||
import legacy from '@vitejs/plugin-legacy';
|
||||
import react from '@vitejs/plugin-react-swc';
|
||||
import { defineConfig, loadEnv } from 'vite';
|
||||
import checker from 'vite-plugin-checker';
|
||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import { createRequire } from 'module';
|
||||
const require = createRequire(import.meta.url);
|
||||
|
||||
/** @type {import('vite').UserConfig} */
|
||||
export default ({ mode }) => {
|
||||
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
|
||||
|
||||
const plugins = [
|
||||
tsconfigPaths(),
|
||||
legacy({
|
||||
targets: ['chrome >= 64', 'safari >= 12', 'edge >= 79', 'firefox >= 67'],
|
||||
modernPolyfills: ['es.object.from-entries', 'es/global-this', 'web/queue-microtask.js'],
|
||||
ignoreBrowserslistConfig: true,
|
||||
renderLegacyChunks: false,
|
||||
}),
|
||||
checker({
|
||||
// e.g. use TypeScript check
|
||||
typescript: true,
|
||||
overlay: false,
|
||||
lintCommand: 'eslint "./src/**/*.{ts,tsx}"',
|
||||
}),
|
||||
react({
|
||||
jsxImportSource: '@emotion/react',
|
||||
babel: {
|
||||
plugins: ['@emotion/babel-plugin'],
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
if (mode === 'production') {
|
||||
plugins.push(
|
||||
sentryVitePlugin({
|
||||
org: 'media-cc',
|
||||
project: 'javascript-react',
|
||||
authToken: process.env.SENTRY_AUTH_TOKEN,
|
||||
bundleSizeOptimizations: {
|
||||
excludeDebugStatements: true,
|
||||
// Only relevant if you added `browserTracingIntegration`
|
||||
excludePerformanceMonitoring: true,
|
||||
// Only relevant if you added `replayIntegration`
|
||||
excludeReplayIframe: true,
|
||||
excludeReplayShadowDom: true,
|
||||
excludeReplayWorker: true,
|
||||
},
|
||||
disable: false,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
return defineConfig({
|
||||
build: {
|
||||
outDir: 'dist',
|
||||
sourcemap: true,
|
||||
target: 'es2015',
|
||||
rollupOptions: {
|
||||
plugins: [
|
||||
nodeResolve({
|
||||
// Add the node-resolve plugin here
|
||||
browser: true, // Resolve for browser environment (set to false for Node.js)
|
||||
preferBuiltins: false, // Avoid using Node.js built-ins if you don't want them
|
||||
}),
|
||||
],
|
||||
},
|
||||
},
|
||||
esbuild: {
|
||||
drop: ['console'],
|
||||
},
|
||||
plugins: plugins,
|
||||
server: {
|
||||
host: 'localhost',
|
||||
port: 3000,
|
||||
proxy: {
|
||||
'/auth': {
|
||||
target: process.env.VITE_APP_AUTH_PROXY_HOST,
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
},
|
||||
'/api': {
|
||||
target: process.env.VITE_APP_API_PROXY_HOST,
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
test: {
|
||||
globals: true,
|
||||
environment: 'jsdom',
|
||||
setupFiles: ['./vitest.setup.ts'],
|
||||
alias: {
|
||||
'~': path.resolve(__dirname, 'src'),
|
||||
},
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
'~': path.resolve(__dirname, 'src'),
|
||||
'@use-blocker': path.resolve(__dirname, 'src/shared/lib/hooks/use-blocker.ts'),
|
||||
},
|
||||
},
|
||||
cacheDir: './.vite',
|
||||
optimizeDeps: {
|
||||
entries: ['./index.html'],
|
||||
},
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user