一、vite 环境变量配置

废话开篇:为了方便调试及开发自然离不开不同的环境配置,这里简单记录下 vitexcode 的环境变量设置

1、效果

终端输入 npm run dev

npm run dev

显示开发环境下的接口地址

终端输入 npm run prod

显示发布环境下的接口地址

2、操作:

(1)cd 进入到当前的项目文件夹

(2)分别创建两个文件

//开发环境
touch .env.dev
//生产环境
touch .env.prod

在工程下的目录结构如下:

.env.dev 文件的内容

NODE_ENV = 'dev'
VITE_BASE_URL = 'https://dev.com'

.env.prod 文件的内容

NODE_ENV = 'prod'
VITE_BASE_URL = 'https://prod.com'

(3) 配置 package.json,添加自定义终端指令

"scripts": {
    "dev": "vite --mode dev",
    "prod": "vite --mode prod",
    "build": "vue-tsc --noEmit && vite build",
    "preview": "vite preview"
}

这里我们看到在 devprod 后面添加了 --mode 与之对应的开发环境标识

(4)如何获取程序配置环境变量

直接上代码

import { defineConfig ,loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
export default defineConfig(({ command, mode }) => {
    let envConfig = loadEnv(mode, process.cwd());
    let baseUrl = envConfig.VITE_BASE_URL;
    return {
        resolve:{
        alias:{
        '@':resolve(__dirname,'/src'),
        }
        },
        base:'./',
        server:{
        port:3000,
        open:true,
        cors:true,
        base: "./ ", //生产环境路径
        proxy: { // 本地开发环境通过代理实现跨域,生产环境使用 nginx 转发
        // 正则表达式写法
        '^/api': {
        target: baseUrl, // 后端服务实际地址
        changeOrigin: true, //开启代理
        rewrite: (path) => path.replace(/^\/api/, '')
        }
     }
   },
   plugins: [vue()]
  }
})

这里从 vite 模块里获取 loadEnv ,利用 loadEnv 方法获取到终端在启动的时候带过来的 mode,那么,通过

loadEnv(mode, process.cwd())

方法获取相应配置文件下的全部以 VITE 开头的变量,如:

VITE_BASE_URL = 'https://dev.com'

这样,在后面的跨域请求处理上就可以直接根据终端命令来指定对应的接口环境。

(5)其他的 vue 页面如何获取动态环境变量,直接上代码:

<script lang="ts" setup>
import { ref } from "vue"
var baseUrl = ref(import.meta.env.VITE_BASE_URL)
</script>
<template>
    <div>
    <div class="content-div">当前地址:{{ baseUrl }}</div>
    </div>
</template>
<style>
.content-div {
    font-size: .17rem;
    margin-top: 1rem;
}
</style>

直接使用 import.meta.env.VITE_BASE_URL 方式来获取不同的环境变量值。

二、xcode的环境变量如何配置

1、效果

DEBUG

RELEASE

2、操作

(1)创建 debugrelease 两个 xcconfig 文件

创建后如图:

(2)xcconfig 文件内容

debug

URL_DOMAIN_NAME = /dev.com
BASE_URL = https/${URL_DOMAIN_NAME}

release

URL_DOMAIN_NAME = /prod.com
BASE_URL = https/${URL_DOMAIN_NAME}

这里需要注意 // 会被默认理解为注释,拆分拼接可以避免。

(3)在 xcode 下配置环境配置文件

这里需要注意的是如果工程用到了 cocopods 这里一般这里都会是 cocopods 的设置的内容,所以,在设置新的配置项后需要引入 cocopods 对应的配置文件,可以通过 #include "其他配置文件路径" 导入。

(4)取值

两个方式:

第一种:在工程文件下添加如下配置

这里其实就是取环境变量

-D'BASEURL=@"${BASE_URL}"'

ViewController.m 文件里添加如下宏定义

#define URL BASEURL

使用:

第二种:添加到 info.plist 文件里

使用:

内容都是些基础知识,整理在一起做一个比较,只是希望对需要人有帮助

更多关于vite xcode 环境变量配置的资料请关注Devmax其它相关文章!

vite与xcode环境变量配置记录详解的更多相关文章

  1. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  2. ios – Xcode在发布时崩溃

    我正在开发iOS应用程序,我在应用程序中没有更改任何内容.但是在重新启动我的Mac时,XCode每次都会崩溃.不知道这是否重要,但我的聚光灯找不到任何应用程序当我打开取景器并使用快捷键cmdshiftH时我看到一个白色的窗户.Xcode不再启动并抛出此错误:我希望有一个人可以帮助我.这会导致与权限冲突吗?

  3. xcode找不到匹配的配置文件

    我有一个AdhociOS应用程序,它给了我“在xcode6中找不到匹配的配置文件”,我创建了一个Adhoc配置文件,下载它,双击它并在General–Identity下选择了一个团队.但我接着得到了那条消息,并尝试使用“修复问题”按钮没有帮助.在构建设置–供应配置文件–发布我有“自动”.任何人都可以帮助我,我完全迷失了……

  4. iOS:调试无法在XCode中运行

    我正在使用XCode4和iOSSDK4.3.我的调试工作正常,但现在我发现在设置断点时,应用暂停,但XCode不关注编辑器中的行.点击断点时也不会显示绿色箭头.我有一个在AppDelegate中分配的UINavigationController.当我在didFinishLaunchingWithOptions中设置断点时,一切都按预期工作:这是当一个断点暂停了mapViewController中的

  5. ios – 如何/是否在Xcode中制作通用故事板

    在Xcode中创建故事板文件时,您必须选择是否适用于iPhone或iPad.这意味着应始终将iPhone和iPadUI放入单独的故事板中.这是真的?我的应用程序有多个故事板.虽然Main.storyboard文件在iPhone和iPad之间存在很大差异,但其他故事板几乎完全相同.唯一的区别可能是推动iPhone与iPhone上的popover,可以通过编程方式处理.制作两个故事板似乎非常愚蠢和多余.因此,如果制作一个“通用”故事板,是否应该在Xcode中选择iPhone或iPad?

  6. xcode – 如何通过LLDB命令行添加断点操作?

    如果你从Xcode编辑一个断点,有一个超级有用的选项,可以添加一个“Action”,以便在每次遇到断点时自动执行.如何从LLDB命令行添加此类操作?

  7. XCode:将故事板导出到图像

    我有一个小问题……

  8. xcode6.1 – Xcode 6.1中项目模板中缺少类前缀

    项目模板上曾经有一个类前缀字段,这有助于区分项目类和框架类.Xcode6.1项目模板中不再提供此功能.这背后的意图是什么?

  9. 为Xcode中的iPhone 5手电筒应用调暗LED

    我期待用滑块选项调暗手电筒的LED.我知道Apple支持iOS6但是,我不确定要使用哪些代码.这是我目前在.m文件中的代码.解决方法–(BOOL)setTorchModeOnWithLevel:(float)torchLevel错误:(NSError**)outError你想要的是什么但是,从我所看到的,它只在某些间隔(~0.2)更新.编辑–完整示例:这是一个UiSlider.您需要在滑块上添加I

  10. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部