@open-xchange/vite-plugin-proxy
v0.9.2
Published
A OX App Suite specific proxy for developing against multiple vite-dev servers
Downloads
6,078
Maintainers
Keywords
Readme
@open-xchange/vite-plugin-proxy
An OX App Suite specific proxy for development purposes. Can connect multiple vite-dev-servers with @open-xchange/vite-plugin-ox-manifests plugins.
Install
pnpm i "@open-xchange/vite-plugin-proxy"
Options
You can provide the following options to the plugin:
proxy
An object with reverse proxy configurations, where the keys need to match the beginning of the path. Usually used to forward /api requests to a backend.
- proxy[key]
<string>
The key defines which paths should be proxied. Keys starting with^
will be treated as regular expressions. - proxy[key].target
<string>
The target where to forward these requests to. - proxy[key].ws
<boolean>
If ws is true, this will only listen to upgrade events for a websocket. Default:false
- proxy[key].rewrite
<function>
A function that receives the path as parameter and returns the new path to proxy. - proxy[key].prependPath
<string>
A string that is prepended for every request. If prependPath and rewrite are present, the key is first prepended and then rewrite is called. - proxy[key].changeOrigin
<boolean>
Changes the origin of the host header to the target URL. Default:false
- proxy[key].secure
<boolean>
Set to false to allow self-signed certificates. Default:true
frontends
An array of objects with frontends to proxy to. A frontend is defined as a server with UI-files and a /manifest
endpoint. Every vite-dev server with the @open-xchange/vite-plugin-manifest
plugin fullfills this requirement. This plugin will always add the current vite-dev server as the first entry into this array such that serving files from the local machine has always the highest priority.
- frontends[i].target
<string>
The target, where to forward requests to. - frontends[i].path
<string>
Optional parameter which will prioritize this frontend for the given path. Is like a reverse proxy configuration for frontends. To indicate a regexp, start the string with a^
. - frontends[i].secure
<boolean>
Set to false to allow self-signed certificates. Default:true
httpProxy
An object for a http proxy to be ususally used with tools like Switchy Omega
- httpProxy.target
<string>
The domain which is handled by the vite proxy. You need to make sure, that the proxy configuration is set accordingly. - httpProxy.port
<number>
The port on which the httpProxy server will listen for requests. Default8080
logLevel
One of fatal
, error
, warn
, info
, debug
, trace
, silent
. Default: warn
Example configuration
vitePluginProxy({
proxy: {
'/api': {
target: 'https://path.to.my.middleware/',
prependPath: '/appsuite',
rewrite: path => path.replace(/\/v1\//, '/v2/'),
changeOrigin: true
},
'/socket.io/appsuite': {
target: `wss://path.to.my.middleware/socket.io/appsuite`,
ws: true,
changeOrigin: true,
secure: false
}
},
frontends: [{
target: 'https://localhost:3000',
path: '/io.ox/guidedtours',
secure: false
}, {
target: 'https://localhost:3001',
path: '/io.ox/customplugin',
}],
logLevel: 'info'
}),