-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[0.8.x] Respect vite server.origin in viteDevServerUrl #255
Conversation
Looking at the issues and other PRs, I can see this could solve a few issues. There are countless edge cases where the hot file and origin could not be configured correctly automatically. This approach just respects what is configured by the user in Another approach it to just let us configure the |
I would love to have this PR merged. I have a project running locally in Laravel Sail behind a reverse proxy, so while Vite is running inside of docker, the browser has to load the assets from the domain managed by the reverse proxy. I'm using this fork and it's working perfectly. It also makes sense to use |
for a workaround/temp fix you can use something like patch-package laravel-vite-plugin+0.8.1.patch diff --git a/node_modules/laravel-vite-plugin/dist/index.cjs b/node_modules/laravel-vite-plugin/dist/index.cjs
index 00b1be6..6a444da 100644
--- a/node_modules/laravel-vite-plugin/dist/index.cjs
+++ b/node_modules/laravel-vite-plugin/dist/index.cjs
@@ -131,7 +131,7 @@ function resolveLaravelPlugin(pluginConfig) {
const address = server.httpServer?.address();
const isAddressInfo = (x) => typeof x === "object";
if (isAddressInfo(address)) {
- viteDevServerUrl = resolveDevServerUrl(address, server.config, userConfig);
+ viteDevServerUrl = userConfig.server?.origin ? userConfig.server.origin : resolveDevServerUrl(address, server.config, userConfig);
import_fs.default.writeFileSync(pluginConfig.hotFile, viteDevServerUrl);
setTimeout(() => {
server.config.logger.info(`
diff --git a/node_modules/laravel-vite-plugin/dist/index.mjs b/node_modules/laravel-vite-plugin/dist/index.mjs
index eee8f31..c4178a0 100644
--- a/node_modules/laravel-vite-plugin/dist/index.mjs
+++ b/node_modules/laravel-vite-plugin/dist/index.mjs
@@ -100,7 +100,7 @@ function resolveLaravelPlugin(pluginConfig) {
const address = server.httpServer?.address();
const isAddressInfo = (x) => typeof x === "object";
if (isAddressInfo(address)) {
- viteDevServerUrl = resolveDevServerUrl(address, server.config, userConfig);
+ viteDevServerUrl = userConfig.server?.origin ? userConfig.server.origin : resolveDevServerUrl(address, server.config, userConfig);
fs.writeFileSync(pluginConfig.hotFile, viteDevServerUrl);
setTimeout(() => {
server.config.logger.info(` |
@nurdism I'm wondering if this can be handled using the |
@timacdonald The issue is the hot file not echoing the correct url, it breaks the HMR and assets regardless of what I set for the proxy inside the dev server. The hot file is loading the base url for HMR and assets on the vite server. No matter how I proxy it on the dev server, the url will continue to not be accessible on my browser. I don't have access to the vite server via any localhost as its not on my local machine its all remote, in a container. I only have access to the configured domain via a reverse proxy to the remote dev server. |
Gotcha. I think this fix makes sense. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [laravel-vite-plugin](https://togithub.com/laravel/vite-plugin) | [`^0.8.0` -> `^1.0.0`](https://renovatebot.com/diffs/npm/laravel-vite-plugin/0.7.8/1.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/laravel-vite-plugin/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/laravel-vite-plugin/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/laravel-vite-plugin/0.7.8/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/laravel-vite-plugin/0.7.8/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>laravel/vite-plugin (laravel-vite-plugin)</summary> ### [`v1.0.2`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v102---2024-02-28) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v1.0.1...v1.0.2) - \[1.x] Fix HMR issue when `resources/lang` directory doesn't exist and a symlink is present in the root directory by [@​jessarcher](https://togithub.com/jessarcher) in [https://github.com/laravel/vite-plugin/pull/285](https://togithub.com/laravel/vite-plugin/pull/285) ### [`v1.0.1`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v101---2023-12-27) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v1.0.0...v1.0.1) - \[1.x] Simpler conditional by [@​Jubeki](https://togithub.com/Jubeki) in [https://github.com/laravel/vite-plugin/pull/273](https://togithub.com/laravel/vite-plugin/pull/273) - \[1.x] Account for imported CSS files while cleaning by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/275](https://togithub.com/laravel/vite-plugin/pull/275) - \[1.x] Fix exit error messages by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/276](https://togithub.com/laravel/vite-plugin/pull/276) ### [`v1.0.0`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v100---2023-12-19) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v0.8.1...v1.0.0) - \[1.0] Drop CJS build and export types first by [@​benmccann](https://togithub.com/benmccann) in [https://github.com/laravel/vite-plugin/pull/235](https://togithub.com/laravel/vite-plugin/pull/235) - \[1.x] Introduce `clean-orphaned-assets` binary by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/251](https://togithub.com/laravel/vite-plugin/pull/251) - \[0.8.x] Respect vite server.origin in viteDevServerUrl by [@​nurdism](https://togithub.com/nurdism) in [https://github.com/laravel/vite-plugin/pull/255](https://togithub.com/laravel/vite-plugin/pull/255) - \[1.x] Vite 5 by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/269](https://togithub.com/laravel/vite-plugin/pull/269) - \[0.8.x] Fallback pages by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/271](https://togithub.com/laravel/vite-plugin/pull/271) - \[1.x] Auto detect Valet / Herd TLS certificates by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/180](https://togithub.com/laravel/vite-plugin/pull/180) ### [`v0.8.1`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v081---2023-09-26) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v0.8.0...v0.8.1) - \[0.8] Fix issue with `0.0.0.0` network resolution by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/241](https://togithub.com/laravel/vite-plugin/pull/241) - Upgrade vitest by [@​sapphi-red](https://togithub.com/sapphi-red) in [https://github.com/laravel/vite-plugin/pull/246](https://togithub.com/laravel/vite-plugin/pull/246) ### [`v0.8.0`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v080---2023-08-08) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v0.7.8...v0.8.0) - fix: compile error following upgrade.md's vite to mix guide by [@​AshboDev](https://togithub.com/AshboDev) in [https://github.com/laravel/vite-plugin/pull/231](https://togithub.com/laravel/vite-plugin/pull/231) - Support Laravel Herd by [@​claudiodekker](https://togithub.com/claudiodekker) in [https://github.com/laravel/vite-plugin/pull/233](https://togithub.com/laravel/vite-plugin/pull/233) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tisnamuliarta/laravel-shadcn). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [laravel-vite-plugin](https://togithub.com/laravel/vite-plugin) | [`^0.7.5` -> `^1.0.0`](https://renovatebot.com/diffs/npm/laravel-vite-plugin/0.7.8/1.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/laravel-vite-plugin/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/laravel-vite-plugin/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/laravel-vite-plugin/0.7.8/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/laravel-vite-plugin/0.7.8/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>laravel/vite-plugin (laravel-vite-plugin)</summary> ### [`v1.0.2`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v102---2024-02-28) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v1.0.1...v1.0.2) - \[1.x] Fix HMR issue when `resources/lang` directory doesn't exist and a symlink is present in the root directory by [@​jessarcher](https://togithub.com/jessarcher) in [https://github.com/laravel/vite-plugin/pull/285](https://togithub.com/laravel/vite-plugin/pull/285) ### [`v1.0.1`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v101---2023-12-27) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v1.0.0...v1.0.1) - \[1.x] Simpler conditional by [@​Jubeki](https://togithub.com/Jubeki) in [https://github.com/laravel/vite-plugin/pull/273](https://togithub.com/laravel/vite-plugin/pull/273) - \[1.x] Account for imported CSS files while cleaning by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/275](https://togithub.com/laravel/vite-plugin/pull/275) - \[1.x] Fix exit error messages by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/276](https://togithub.com/laravel/vite-plugin/pull/276) ### [`v1.0.0`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v100---2023-12-19) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v0.8.1...v1.0.0) - \[1.0] Drop CJS build and export types first by [@​benmccann](https://togithub.com/benmccann) in [https://github.com/laravel/vite-plugin/pull/235](https://togithub.com/laravel/vite-plugin/pull/235) - \[1.x] Introduce `clean-orphaned-assets` binary by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/251](https://togithub.com/laravel/vite-plugin/pull/251) - \[0.8.x] Respect vite server.origin in viteDevServerUrl by [@​nurdism](https://togithub.com/nurdism) in [https://github.com/laravel/vite-plugin/pull/255](https://togithub.com/laravel/vite-plugin/pull/255) - \[1.x] Vite 5 by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/269](https://togithub.com/laravel/vite-plugin/pull/269) - \[0.8.x] Fallback pages by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/271](https://togithub.com/laravel/vite-plugin/pull/271) - \[1.x] Auto detect Valet / Herd TLS certificates by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/180](https://togithub.com/laravel/vite-plugin/pull/180) ### [`v0.8.1`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v081---2023-09-26) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v0.8.0...v0.8.1) - \[0.8] Fix issue with `0.0.0.0` network resolution by [@​timacdonald](https://togithub.com/timacdonald) in [https://github.com/laravel/vite-plugin/pull/241](https://togithub.com/laravel/vite-plugin/pull/241) - Upgrade vitest by [@​sapphi-red](https://togithub.com/sapphi-red) in [https://github.com/laravel/vite-plugin/pull/246](https://togithub.com/laravel/vite-plugin/pull/246) ### [`v0.8.0`](https://togithub.com/laravel/vite-plugin/blob/HEAD/CHANGELOG.md#v080---2023-08-08) [Compare Source](https://togithub.com/laravel/vite-plugin/compare/v0.7.8...v0.8.0) - fix: compile error following upgrade.md's vite to mix guide by [@​AshboDev](https://togithub.com/AshboDev) in [https://github.com/laravel/vite-plugin/pull/231](https://togithub.com/laravel/vite-plugin/pull/231) - Support Laravel Herd by [@​claudiodekker](https://togithub.com/claudiodekker) in [https://github.com/laravel/vite-plugin/pull/233](https://togithub.com/laravel/vite-plugin/pull/233) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tisnamuliarta/laravel-shadcn). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzguMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzOC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
When running vite behind a reverse proxy, often you can get into situation where your publicly facing URL differs from the internally served URL, I am running into such an issue.
My vite server is being served on
http://0.0.0.0:8080
, I am reverse proxyinghttp://0.0.0.0:8080
(via nginx) over to a domainexample.com
, so the publicly facing URL for my vite server ishttps://example.com
. My browser has 0 access tohttp://0.0.0.0:8080
, it is on a remote machine inside a container. I only have access to it via the reverse proxy.This is usually solved by setting the
server.origin: 'https://example.com'
so all assets from vite are pointed to the right domain and location. But thisvite-plugin
does not respect the user configuredserver.origin
and renders the plugin unusable in an environment that is using a reverse proxy in such a manor.