javascript - npm 配置 axios
问题描述
如何使用 npm 参数为 axios 设置 baseUrl?
我想编写这样的命令,npm run build --baseUrl={url address}
并在 axios config 中将 baseURL 参数设置为命令中的参数。
有可能的 ?
解决方案
我认为如果你这样调用它是不可能--baseUrl
的,就好像你那样做,你将不得不定义--baseUrl
fornpm start
和其他脚本,你很快就会得到一个意大利面条代码。
我谦虚地建议一种方法来缓解这个问题:
- 创建一个
.env
包含开发环境变量的文件。将此添加到.gitignore
并且不要将其推送到您的生产服务器中。此文件不用于生产。 - 添加一个新
BASE_URL
变量,例如:
BASE_URL=http://YOUR_API_LOCATION/
使用
dotenv
(install bynpm i dotenv
) 之类的库,以便您可以读取.env
文件。为 axios 创建一个新实用程序,假设:
// client.js
const axios = require('axios');
const dotenv = require('dotenv');
// get all environment variables here.
dotenv.config({ path: '.env' });
// create a new axios instance with the base url from your '.env' file.
const axiosInstance = axios.create({
baseURL: process.env.BASE_URL,
/* other custom settings */
});
module.exports = axiosInstance;
您可以axiosInstance
像这样重用您的:
// request.js
const axiosCustomClient = require('./client');
axiosCustomClient.get('relative/path/to/your/api');
推荐阅读
- r - 在 gtable 图中强制等边距
- mysql - 与直接选择相比,查询返回的条件之间没有日期的行更少
- ios - UISwitch 崩溃时的 iOS 触觉反馈
- spring-boot - 从这样的主题获取消息,但只想要短信而不是所有信息,我使用了 jms 监听器和 spring boot
- basic - 翻译基本程序;停留在 ^(-1/2) 和 ^(3/2)
- react-native - 图像以相同的uri消失
- java - ProcessBuilder无法调用资源文件夹中的python脚本
- jquery - 使用角度单击某行时如何显示div
- c# - c# Azure MVC 从控制器调用 .Result 检查 blob 是否存在
- javascript - JS中的罗马数字和阿拉伯数字字符串数组排序