I have a Vite TanStack router project, because of spa i have a redirect in my netlify.toml from /* to index.html as recommended here, however when building locally using the ‘ntl build’ command the project then crashes when doing ‘ntl dev’ until the dist folder is deleted. i have a MRE of the project here here is the link to the netlify app
Tried your repo, built fine:
netlify build --offline
Netlify Build
────────────────────────────────────────────────────────────────
❯ Version
@netlify/build 33.4.6
❯ Flags
dry: false
offline: true
❯ Current directory
/home/hrishikesh/tickets/f-151899
❯ Config file
/home/hrishikesh/tickets/f-151899/netlify.toml
❯ Context
production
build.command from netlify.toml
────────────────────────────────────────────────────────────────
$ vite build
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
vite v6.3.5 building for production...
Generated route tree in 114ms
✓ 134 modules transformed.
dist/index.html 0.73 kB │ gzip: 0.41 kB
dist/assets/logo-CHtJT8UQ.svg 8.61 kB │ gzip: 3.65 kB
dist/assets/index-BarpStXw.css 0.73 kB │ gzip: 0.48 kB
dist/assets/_jobId-BngASlKQ.js 0.18 kB │ gzip: 0.17 kB
dist/assets/index-CCTlHKxb.js 0.42 kB │ gzip: 0.29 kB
dist/assets/index-BvqSK_0V.js 261.90 kB │ gzip: 83.72 kB
✓ built in 1.44s
(build.command completed in 3.1s)
Netlify Build Complete
────────────────────────────────────────────────────────────────
(Netlify Build completed in 3.2s)
yes correct, it does build fine, running ‘ntl dev’ post build crashes the dev server
Sorry for the oversight, you’re right. Seems like this can be fixed by adding a plugin like:
import { defineConfig } from 'vite'
import viteReact from '@vitejs/plugin-react'
import { tanstackRouter } from '@tanstack/router-plugin/vite'
import path from "path";
import { existsSync, rmSync } from 'node:fs';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [(() => {
return {
configResolved(resolvedConfig) {
const distDir = path.join(resolvedConfig.root, resolvedConfig.build.outDir)
if (existsSync(distDir)) {
rmSync(distDir, {
recursive: true
})
}
},
name: 'delete-dist'
}
})(), tanstackRouter({ autoCodeSplitting: true }), viteReact()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
})