export default defineConfig()

in vite.config.ts [11:48]


export default defineConfig({
  plugins: [
    remix({
      future: {
        v3_fetcherPersist: true,
        v3_relativeSplatPath: true,
        v3_throwAbortReason: true,
        v3_singleFetch: true,
        // Disable lazy route discovery to ensure all routes are discovered properly
        v3_lazyRouteDiscovery: false,
      },
      // Explicitly ignore the directory structure convention
      ignoredRouteFiles: ["**/*.css", "**/*.test.{js,jsx,ts,tsx}"],
    }),
    tsconfigPaths(),
  ],
  ssr: {
    // Don't bundle these server-only modules for SSR
    noExternal: [],
    // External these packages to avoid bundling native modules
    external: ["dockerode", "cpu-features", "ssh2"],
  },
  optimizeDeps: {
    // Exclude server-only packages from dependency optimization
    exclude: ["dockerode", "cpu-features", "ssh2", "@remix-run/node"],
  },
  build: {
    rollupOptions: {
      external: [
        // Exclude native node modules from client bundle
        /\.node$/,
        "dockerode",
        "cpu-features",
        "ssh2",
      ],
    },
  },
});