import react from '@vitejs/plugin-react'; import { promises as fsPromises } from 'fs'; import { createRequire } from 'module'; import * as path from 'path'; import * as url from 'url'; import { defineConfig } from 'vite'; import { ViteEjsPlugin } from 'vite-plugin-ejs'; process.env.VITE_APP_GIT_SHA_DATE = new Date().toLocaleString('en-US', { timeZone: 'America/Los_Angeles', }); const WRONG_CODE = `import { bpfrpt_proptype_WindowScroller } from "../WindowScroller.js";`; function reactVirtualized() { return { name: 'flat:react-virtualized', configResolved: async () => { const require = createRequire(import.meta.url); const reactVirtualizedPath = require.resolve('react-virtualized'); const { pathname: reactVirtualizedFilePath } = new url.URL( reactVirtualizedPath, import.meta.url ); const file = reactVirtualizedFilePath.replace( path.join('dist', 'commonjs', 'index.js'), path.join('dist', 'es', 'WindowScroller', 'utils', 'onScroll.js') ); const code = await fsPromises.readFile(file, 'utf-8'); const modified = code.replace(WRONG_CODE, ''); await fsPromises.writeFile(file, modified); }, }; } export default defineConfig({ base: '/', plugins: [ ViteEjsPlugin((viteConfig) => { // viteConfig is the current Vite resolved config return { env: viteConfig.env }; }), reactVirtualized(), react(), ], server: { host: true, port: 3000, open: true, }, optimizeDeps: { esbuildOptions: { loader: { '.js': 'jsx', }, }, }, });