首页 > 解决方案 > npm 配置 axios

问题描述

如何使用 npm 参数为 axios 设置 baseUrl?

我想编写这样的命令,npm run build --baseUrl={url address}并在 axios config 中将 baseURL 参数设置为命令中的参数。

有可能的 ?

标签: javascriptvue.jsnpmaxios

解决方案


我认为如果你这样调用它是不可能--baseUrl的,就好像你那样做,你将不得不定义--baseUrlfornpm start和其他脚本,你很快就会得到一个意大利面条代码。

我谦虚地建议一种方法来缓解这个问题:

  • 创建一个.env包含开发环境变量的文件。将此添加到.gitignore并且不要将其推送到您的生产服务器中。此文件不用于生产。
  • 添加一个新BASE_URL变量,例如:
BASE_URL=http://YOUR_API_LOCATION/
  • 使用dotenv(install by npm 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');

推荐阅读