Proxy module for Nuxt
This serves as an alternative for @nuxtjs-alt/proxy. Please note that this is for nuxt 3 only. The config is similar to what vite has except that this one creates a physical file which is needed for production.
- Add
@nuxt-alt/proxy
dependency to your project
yarn add @nuxt-alt/proxy
- Add
@nuxt-alt/proxy
to themodules
section ofnuxt.config.ts
export default defineNuxtConfig({
modules: [
'@nuxt-alt/proxy'
],
proxy: {
/* module options */
}
});
- Type:
Object
- Default:
{}
- Type:
Boolean
- Default:
false
(false in prod | true in dev)
urls to proxy
- Type:
Boolean
- Default:
false
Enable this to use a nitro plugin that tries to hook onto the server's request and grab the server to listen in production. This is untested in non-node environments.
Nitro hook available after enabling (only in production):
nitroApp.hooks.hook('listen:node', (server) => {})
import { defineNuxtConfig } from 'nuxt/config'
export default defineNuxtConfig({
modules: [
'@nuxt-alt/proxy',
],
proxy: {
debug: false,
experimental: {
listener: false
},
proxies: {
// string shorthand
'/foo': 'http://localhost:4567',
// with options
'/api': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
},
// with RegEx
'^/fallback/.*': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/fallback/, ''),
configure: (proxy, options, runtimeConfig) => {
// proxy will be an instance of 'http-proxy'
},
},
// Using the proxy instance
'/api': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
configureWithEvent: (proxy, options, runtimeConfig, event, h3) => {
// proxy will be an instance of 'http-proxy'
// event will be an instance of the matched url
proxy.on('proxyReq', (proxyReq) => {
const cookies = h3.parseCookies(event)
console.log(cookies)
})
}
},
// Proxying websockets or socket.io - Note this only works with `experimental.listener`
'/socket.io': {
target: 'ws://localhost:5173',
ws: true
}
}
}
})