使用Nuxt开发通用 JS 应用程序,我正在尝试配置webpack 的开发代理,以便仅在开发中,请求/api
被代理到http://127.0.0.1:500/api
他们将到达 Python REST API 的位置。按照 Nuxt 文档,我扩展了 webpack 配置,nuxt.config.js
如下所示:
build: {
extend (config, { isDev }) {
// Proxy /api to Python only in dev
if (isDev) {
const devServer = {
proxy: {
'/api': 'http://127.0.0.1:5000'
}
}
config.devServer = devServer;
}
}
}
如果我记录配置,我会看到正在应用更改:
...
devServer: { proxy: { '/api': 'http://127.0.0.1:5000' } } }
...
然而,当我访问http://127.0.0.1:8080/api/things时,我的 Nuxt 应用程序被返回(它在 dev 的 8080 端口上运行),表明 webpack dev 代理没有捕获/api
路径并执行代理。只是为了确认代理目的地正在工作,如果我访问http://127.0.0.1:5000/api/things,我会得到预期的 API 响应。为什么,当我扩展 Nuxt webpack 配置以启用 webpack dev 代理时,代理不起作用?
然而,我在@nuxt/proxy模块上取得了成功,但至关重要的是,我找不到一种方法让它只影响开发而不影响生产。那部分nuxt.config.js
看起来像这样:
axios: {
proxy: true
},
proxy: {
'/api': 'http://127.0.0.1:5000'
},
我很高兴使用@nuxt/proxy 模块而不是(在上面?)webpack 开发代理,如果它只能在开发中工作的话。