Well, just right off Vite doesn't run your Laravel application like Laravel Valet or artisan serve does. npm run dev spins up a Vite development server, all that does is re-build your assets when you update them, update your Laravel views or any other files and directories you've asked it to watch.
I haven't exposed it locally yet, but based on the fact that artisan serve and Valet runs on one port, and Vite runs on the other. Valet runs on :80 by default, artisan serve runs :8080 and the Vite server runs :5173 by default.
You can see this when you start the server with npm run dev. It tells you in the terminal which port is used.
VITE v3.1.4 ready in 1705 ms
Local: http://127.0.0.1:5173/
Network: use --host to expose
// Using --host will result in this result below of IP_RANGE
// Network: https://{IP_RANGE}:5173/
// Network: https://{IP_RANGE}:5173/
LARAVEL v9.21.5 plugin v0.5.4
APP_URL: https://laravel.test
And the APP_URL is only forwarded from your .env file, it doesn't do anything in Vite, it's just convenient and quick way to open your Laravel app.
My suggestion would be to expose Vite on one port of your local IP and expose your Laravel app on another port. Like they do on your own machine.