现在我有一个问题,如何在构建后手动更改axios baseUrl。如果指定的请求url更改了,我可以手动更改baseUrl,而不是重新构建项目
发布于 2020-06-08 08:10:20
您必须使用axios.create()
函数创建一个新的axios
实例。然后,您可以使用此实例在新的baseUrl上进行调用。
const myNewInstance = axios.create({
baseURL: 'https://my-domain.com/api/',
timeout: 3000,
headers: {'X-Custom-Header': 'foobar'}
});
您还可以将其原型化为plugin
中的Vue
对象,然后可以从所有组件和页面访问它。
发布于 2020-06-08 09:12:45
您可以使用名为API_URL
的环境变量覆盖baseUrl
。只需将其设置为您需要的任何URL。请参考官方文档:https://axios.nuxtjs.org/options.html#baseurl
此外,如果您还想覆盖browserBaseUrl
,可以使用API_URL_BROWSER
环境变量以相同的方式执行此操作。
提示:您可以通过添加环境变量前缀来设置单个命令的环境变量。因此,从技术上讲,这应该是可行的:
API_URL="https://example.com" nuxt start
发布于 2020-06-17 07:41:04
使用跨环境:npm install cross-env
在你的项目中,添加一个名为environment
的文件夹,在这个文件夹下,你可以有不同的environment
(例如,开发,试运行,生产)
您的环境配置将具有您的baseUrl
和其他配置,例如,对于开发,您可以拥有本地主机,而对于暂存或生产,您可以拥有API_URL
defaults.json \\development
defaults.prod.json \\production
在nuxt.config.ts
build > extend中配置不同的环境
这将替换defaults.json
,这取决于我们将在package.json
中运行脚本的环境。
在package.json
中,将脚本配置为将运行的环境(例如,npm run start
将使用NODE_ENV=development
,它将对baseUrl: http://localhost:3000
使用defaults.json
,而npm run build
将对baseUrl: http://www.API_URL.com
和其他配置使用defaults.prod.json
有关更多详细信息,请参阅cross-env
https://stackoverflow.com/questions/62257635
复制