A http proxy module for nuxt(3) powered by h3-proxy .
- See this issue Error when starting a Project using "http-proxy-middleware" with "npm run start" #15608.
- Support for both development and production environments.
- Almost the same API as nuxt-proxy that using http-proxy-middleware, But this module using h3-proxy .
- Support Typescript.
- Add
nuxt-proxy-request
dependency to your project
# Using pnpm
pnpm add -D nuxt-proxy-request
# Using yarn
yarn add --dev nuxt-proxy-request
# Using npm
npm install --save-dev nuxt-proxy-request
- Add
nuxt-proxy-request
to themodules
section ofnuxt.config.ts
export default defineNuxtConfig({
modules: [
'nuxt-proxy-request'
],
proxy: {
options: [
{
target: 'http://www.example.com',
pathFilter: ['/api/**'],
pathRewrite: {
'^/api': ''
}
}
]
}
// OR
// runtimeConfig: {
// proxy: {...}
// }
})
That's it! You can now use nuxt-proxy-request in your Nuxt app ✨
Key | Type | Default value | Description |
---|---|---|---|
options |
object/Array<object> |
[] |
Configure which targets you want to proxy. |
-
Do not use
runtimeConfig.proxy
for configuration, as the function type value in theruntimeConfig
object will be ignored. Please useproxy
for configuration as it has undergone special processing on the internal implementation. -
Do not use any external variables within the function body.
import foo from 'foo'
export default defineNuxtConfig({
modules: [
'nuxt-proxy-request'
],
proxy: {
options: [
{
target: 'http://www.example.com',
pathFilter: function(path, req) {
console.log(foo) /* At runtime, foo is undefined. */
return path.match(/^\/api/) && req.method === 'GET';
},
pathRewrite: {
'^/api': ''
}
}
]
}
})
-
Do not use RegExp literal, using
new RegExp()
instead, in function body. -
Do not use Single-Line Comments, using Multiple-Line Comments instead, in function body.
If the above points cause you trouble. You can use
h3-proxy
directly. See how to use h3-proxy in Nuxt3 Project.
# Install dependencies
pnpm install
# Generate type stubs
pnpm run dev:prepare
# Develop with the playground
pnpm run dev
# Build the playground
pnpm run dev:build
# Run ESLint
pnpm run lint
# Run Vitest
pnpm run test
pnpm run test:watch
# Release new version
pnpm run release