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

时间:2019-02-19 16:24:31

标签: vue.js axios nuxt.js nuxt

这似乎是一个简单的Nuxt问题,但我无法弄清楚。

当运行“ NPM run dev”时,我要将Axios baseURL设置为“ localhost / api”,当在“ NPM run generate”后从dist文件夹运行时,我希望baseURL为“ /api”。

有一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:2)

这是这样做的方法:

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作为依赖项来尝试该示例。

答案 1 :(得分:0)

您还可以通过env变量从外部设置api(例如package.json脚本)

我的package.json片段(当浏览器使用不同的浏览器时,存在额外的复杂性 api url,然后进行服务器端渲染,Nuxt本身仍支持变量API_URL_BROWSER和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",

,并且在nuxt config中完全不使用axios部分。