axios 如何在开发或生产中设置baseURL

djp7away  于 2022-12-04  发布在  iOS
关注(0)|答案(3)|浏览(241)

这似乎是一个简单的问题,但我就是想不出来。
当运行“NPM run dev”时,我希望将Axios baseURL设置为“localhost/api”,当在“NPM run generate”后从dist文件夹运行时,我希望将baseURL设置为“/api”。
有简单的解决方法吗?

cwtwac6a

cwtwac6a1#

这是通过nuxt.config.js实现的方法:

let development = process.env.NODE_ENV !== 'production'

module.exports = {
  axios: {
    baseURL: development ? 'http://localhost:3001/api' : 'https://domain/api'
  },
  modules: [
    '@nuxtjs/axios'
  ],
}

如您所见,您应该指定后端完整URL,包括域(仅限SPA模式除外)。
不要忘记安装@nuxtjs/axios作为依赖项来尝试这个示例。

2vuwiymt

2vuwiymt2#

你也可以通过env变量从外部设置api(例如package.json脚本)
我的package.json片段(当浏览器使用不同的API URL时,服务器端呈现会变得更加复杂,但Nuxt本身仍支持所有这些API URL和API URL)

"scripts": {
    "dev-prodapi": "API_URL=https://kairly.com/api nuxt",
    "dev": "API_URL=http://localhost:8000/api nuxt",
    "dev-spa-prodapi": "API_URL=https://kairly.com/api nuxt --spa",
    "dev-spa": "API_URL=http://localhost:8000/api nuxt --spa",
    "build": "API_URL_BROWSER=https://kairly.com/api API_URL=https://internal-apihost/api/ nuxt build --modern=server",
    "start": "API_URL_BROWSER=https://kairly.com/api API_URL=https://internal-apihost/api/ nuxt start --modern=server",

并且在nuxtconfig中根本不使用axios部分。

r6hnlfcb

r6hnlfcb3#

Nuxt 3中,我们可以使用.env文件。这是文档。
第一个

相关问题