Start on multiple hosts
Description
It seems as if it is not possible to start using multiple IPs/hosts. I've tried separating by comma, but thats throwing an error. As of now it seems that it's only possible to use one host or all ...
Suggested solution
add support for multiple hosts (perferrably as array: host: string | boolean | array).
Alternative
No response
Additional context
No response
Validations
- [X] Follow our Code of Conduct
- [X] Read the Contributing Guidelines.
- [X] Read the docs.
- [X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
Can you explain why you want to start on multiple host? Node.js createServer only supports starting on one host (unless DNS could resolve multiple different hosts to this one).
Can you explain why you want to start on multiple host? Node.js
createServeronly supports starting on one host (unless DNS could resolve multiple different hosts to this one).
multiple sub-domain, eg laravel route support multiple domain and php artisan serve not support ssl, so just can use vite/apache to run ssl to dev
I suppose we can call .listen() multiple times to support multiple hosts, but it doesn't seem like a common usecase. There's the same discussion in webpack: https://github.com/webpack/webpack-dev-server/issues/400
I am currently facing the same issue. The app will run on multiple subdomains in production and I need to replicate this for development.
facing the same issue. I would like to run an instance for each of the environments: mock data environment, dev environment and production environment simultaneously Each environment is using HTTPS protocol and runs on port 443 with different host names
I have a use case for this as well (originally reported in https://github.com/vitejs/vite/issues/18469)
TLDR: I want vite to run on IPv4 (127.0.0.1) and IPv6 (::1) simultaneously to make it easier for us to use a custom domain for local development (e.g. local.example.com points to either 127.0.0.1 or ::1, but we don't know if the developer uses IPv4 or IPv6 on their machine, local.example.com can use IPv4 while localhost uses IPv6, leading to a mismatch)
My workaround ended up being this, so it's still just listening on a single host, but we're smarter about how to pick it:
const { family } = await dns.promises.lookup("local.example.com");
export default defineConfig({
plugins: [tsconfigPaths(), react()],
server: {
port: 3000,
host: family === 6 ? "::1" : "127.0.0.1",
},
});