首页 > 其他分享 >Vite配置环境变量以及反向代理请求

Vite配置环境变量以及反向代理请求

时间:2023-09-05 16:36:47浏览次数:39  
标签:NODE 请求 env api 反向 VITE ENV 环境变量 Vite

我们在开发中会经常配置环境即ENV,并且在发送请求的时候会出现跨域问题,本文就着重讲一下Vite里面env的配置以及跨域的处理!

env

env即环境,我们经常会配置开发环境、生产环境、测试环境。

环境配置

新建文件
.env 全环境
.env.development 开发环境
.env.production 生产环境
.env.test 测试环境

以上文件可按需要创建,当然也可以创建自己的env文件

上面文件默认按以下命令获取环境,当然可以自己配置命令,这里不多讲述!

development 代表 npm run dev

production 代表 npm run build

文件配置示例:
在vite中环境变量必须以VITE开头

// .env.development

// 下面讲述 NODE_ENV 主要用于判断当前环境
NODE_ENV=development

// 请求地址 vite.confing.js 会用到
VITE_BASE_URL=https://test.com
//项目名称
VITE_APP_TITLE=牛的不能再牛的项目

在代码中我们经常可能会判断当前环境,这个时候上面的NODE_ENV就起到作用了

在webpack中,它依旧叫NODE_ENV,在Vite中,它被编译成VITE_USER_NODE_ENV

// 获取方式
import.meta.env.VITE_USER_NODE_ENV

// 输出
development

不难发现其实我们也可以自己以VITE开头命名,但为了规范性我们还是命名成NODE_ENV吧

反向代理请求

为什么需要设置反向代理?

因为往往我们本地的请求大部分都会跨域,导致请求无法发出!

什么是跨域?

跨域是同源策略,简单来说就是协议、IP、端口三者需保持一直,在我们本地开发很难做到,线上使用nginx还是可以做到的

什么是协议、IP、端口一致?

通俗的讲

http://192.168.1.109:3000

协议即上面的http
IP即上面的192.168.1.109
端口一致即上面的3000

协议一般最常见的就是http和https,IP与端口一眼就明白不说了

只要上述三者一致就不会跨域!!!

Vite配置

在vite.config.js中配置,若没有请自行创建,以下是示例:

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig(({ mode }) => {
    // 获取env
    const env = loadEnv(mode, process.cwd());
    return {
        // 插件
        plugins: [
            vue(),
        ],
        // 服务配置
        server: {
          // 当前项目启动端口
          port: 3000,
          // 反向代理
          proxy: {
            // 以/api开头的请求都进行代理
            '/api': {
                // 代理目标
                target: env.VITE_BASE_URL,
                // 改变源
                changeOrigin: true,
                // 重写把/api置空
                rewrite: (path) => path.replace(/^\/api/, ''),
              }
          },
        },
     }
})

上面把以/api开头的请求都进行代理,并把/api置空,使用loadEnv获取env拿到我们配置的请求路径

配置效果如下

// 后端请求地址
https://test.com

// 前端显示请求
http://192.168.1.109:3000/api/testapi

// 代理后的实际请求地址
https://test.com/testapi

这里不能使用import.meta.env,会报以下错误,无法获取到值

Vite配置环境变量以及反向代理请求_vite

警告

如果感觉有帮助,麻烦3连(关注、赞、在看),谢谢! 后面会更新更多。

Vite配置环境变量以及反向代理请求_vite_02

关注公众号了解更多

标签:NODE,请求,env,api,反向,VITE,ENV,环境变量,Vite
From: https://blog.51cto.com/u_16123566/7373654

相关文章

  • vue3+vite使用require引用图片失效问题
    首先,这个问题的原因跟vue无关,是vite引用只支持import,require是隔壁webpack的引用方式,vite用自身的url可以用import.meta.url来拼装项目路径,如下:这个原理只不过是在发布的地址上去找对应图片,而且只会找项目中public文件夹下的图片资源,assets文件夹下的图片资源找不到(原因是publ......
  • vite
    vite的原理ESModulesvite的成功得益于现代浏览器对于基于ECMAScript标准原生模块系统(ESModules)实现。目前主流浏览器(IE11除外)都已经支持。他允许我们在浏览器使用export、import的方式导入和导出模块,在script标签里设置type="module"<scripttype="module">import......
  • 手把手教你vue3-ts-uniapp-vite创建多端小程序-3 统一ui,uni-ui库
    uni-ui官网地址https://uniapp.dcloud.net.cn/component/uniui/quickstart.html1.安装sass、sass-loadernpminstallsass-Dnpminstallsass-loader-D2.安装uni-uinpminstall@dcloudio/uni-ui3.配置easycom。在pages.json中配置"easycom":{"autoscan&q......
  • 手把手教你vue3-ts-uniapp-vite创建多端小程序-2 设置底部导航
    1.打开项目,打开pages.json,设置底部导航栏。注意pages中的path和tabBar中list中的path要一致{ "pages":[ { "path":"pages/index/index", "style":{ "navigationBarTitleText":"首页" } },{ "pa......
  • 一键配置Java环境变量
    后缀改成bat运行@echooffsetJAVA_HOME=D:\ProgramFiles\Java\jdk-11setPATH=%PATH%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\binsetCLASSPATH=.;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jarsetRegV=HKLM\SYSTEM\CurrentControlSet\Control\Ses......
  • 解决vite-plugin-mock: if (!require.cache) { ^ ReferenceError: require is not
    项目中:  "mockjs":"^1.1.0",  "vite-plugin-mock":"^3.0.0",运行报错:file:///C:/Users/jkf9941/Desktop/study/vue3Mange/node_modules/vite-plugin-mock/dist/index.mjs:128 if(!require.cache){ReferenceError:requireisno......
  • docker 使用Nginx反向代理配置
    dockerexec-itnginxbash#进入nginx容器容器里面需要安装Vimapt-getupdate#这个命令的作用是:同步/etc/apt/sources.list和/etc/apt/sources.list.d中列出的源的索引,这样才能获取到最新的软件包。apt-getinstall-yvim查看Nginx配置文件cdetc/nginx......
  • Lnton羚通视频分析算法平台OpenCV-Python直方图反向投影教程
    OpenCVPython直方图反向投影用于图像分割和查找感兴趣目标。简单的说,会创建一个与输入图像同样大小的图像(单通道),每个像素对应像素属于目标的概率。更简单的说就是,输出图像在感兴趣的目标处更白。常常与camshift算法一起使用,用于目标跟踪(查找目标)如何使用呢?创建一个图像的直方......
  • 深入剖析Nginx反向代理与负载均衡策略
    在现代网络架构中,Nginx作为一款高性能的Web服务器和反向代理服务器,扮演着重要角色。本篇博客将深入探讨Nginx的反向代理功能以及不同的负载均衡策略,帮助你更好地理解和应用这一技术。Nginx反向代理反向代理是一种服务器配置,它将客户端请求转发到后端服务器,并将后端服务器的响应返回......
  • vue3 + vite 动态引入不被打包的静态资源
    在开发中,通常会把一些静态资源放在assets文件夹下,但是assets目录下的内容是需要vite编译打包的,所以如果只是引用assets目录下的资源时,使用绝对路径、相对路径均可。但是,在开发中,我们经常会引用一些不被打包的资源,此时该资源是放在public目录下的,那么在引用时,路径的写法如下:不......