I'm trying to make Vite build my files and output them into the dist folder every time I save/make changes on to my files during development.
How would I do that?
Here is my vite.config.development.js file:
import { defineConfig } from "vite";
export default defineConfig({
    base: "./",
    build: {
        rollupOptions: {
            output: {
                assetFileNames: "assets/[name].[ext]",
                chunkFileNames: "assets/[name].[ext]",
                entryFileNames: "assets/[name].js",
            },
        },
        write: true,
    },
});
Here is my scripts in package.json:
"frontend-dev": "vite --config vite.config.development.js",
It does the usual localhost:3000 thing, but it does not build my files and put them in the dist folder when I make changes to my source code.
Currently, I have to run a vite build npm script every time which takes a lot of time.
If you want Vite to do a rebuild on file changes, you can use the --watch flag:
vite build --watch
In your case, with a custom config file:
vite build --watch --config vite.config.development.js
With the --watch flag enabled, changes to the config file, as well as any files to be bundled, will trigger a rebuild and will update the files in dist.
Building on @Mussini's answer, you have a few options:
Add --watch and optional --config:  vite build --watch --config vite.config.ts on cli
Add to package.json:
{
  "name": "frontend",
  ...
  "scripts": {
    "dev": "vite",
    ...
    "build-watch": "vite build --watch --config ./vite.config.js",
    "build": "vite build",
Integrate --watch into the vite.config.ts which adds watching to the build cmd by default (vite build does not exit!)
export default defineConfig({
  build: {
    watch: './vite.config.js',
You likely want option 2 and use with npm run build-watch
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With