一文搞明白vue开发者vite多环境配置

 更新时间:2023年06月06日 09:21:48   作者:香菜+  
Vue是一款流行的JavaScript框架,用于开发动态单页应用程序,本地安装和环境配置是学习和使用Vue的第一步,下面这篇文章主要给大家介绍了关于vue开发者vite多环境配置的相关资料,需要的朋友可以参考下

在看项目的过程中,发现有类似服务端多环境配置的配置,所以研究了下,在网上有多个方案,选了一个当前在用的吧,另外一个没验证

1、原理

对于使用Vite构建的Vue项目,可以使用Vite提供的环境变量来实现多环境配置。

Vite 使用 dotenv 从 环境文件目录 中加载环境文件,默认情况下,环境文件目录为项目的根目录,即把环境文件放在项目根目录下。

环境文件命名如下:

.env                # 所有情况下都会加载
.env.local          # 所有情况下都会加载,但会被 git 忽略
.env.[mode]         # 只在指定模式下加载
.env.[mode].local   # 只在指定模式下加载,但会被 git 忽略

不同环境的变量可以定义在 .env.[mode] 文件中,如 .env.dev、.env.prod 等,如果 .env 文件和 .env.[mode] 中有相同的 key,后者定义的值会覆盖前者。

这里咱们以三个环境为例编写 demo,分别是:

  • 开发环境,mode 为 dev,文件名为 .env.dev
  • 测试环境,mode 为 uat,文件名为 .env.uat
  • 生产环境,mode 为 prod,文件名为 .env.prod

2、创建配置文件 

使用 .env 文件来设置特定环境的变量。Vite 会自动加载 .env 文件,而且支持使用不同的 .env 文件来为不同的环境提供变量。

在项目根目录下创建.env.dev.env.test.env.prod等环境变量文件,并在其中定义各个环境的变量。例如:

NODE_ENV="development"
VITE_BASE_API="http://172.26.1.152:80"
VITE_BASE_WS="ws://172.26.1.152:18083"

注意,变量名必须以VITE_开头,这是Vite默认的前缀。

3、使用多环境配置

package.json中配置启动脚本,使用配置

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

4、使用环境变量

在Vue组件中使用环境变量:

<template>
  <div>
    <p>{{ apiURL }}</p>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      apiURL: import.meta.env.VITE_BASE_API
    }
  }
}
</script>

在Vue组件中可以通过import.meta.env.VITE_API_URL来访问环境变量。

5、关于编辑器提示

可以添加 vite-env.d.ts解决。如果不存在这个文件,在 src 目录下创建文件 vite-env.d.ts,我的项目下有,不记得是不是自己手动创建了

/// <reference types="vite/client" />
​
interface ImportMetaEnv {
  readonly VITE_BASE_API: string;
  readonly VITE_BASE_WS: string;
}​

6、最后验证下

main.ts 打印下环境变量

客户端访问,打开控制台可以看到环境变量,试着切换下看看生效了吗

7、process.env和import.meta.env

process.env是Node.js中的全局变量,用于访问进程中的环境变量。在前端开发中,我们通常使用Webpack等构建工具来打包应用程序,因此需要在构建过程中设置环境变量。在Webpack中,可以使用DefinePlugin插件将环境变量注入到应用程序中,然后在代码中通过process.env来访问这些变量。

例如,在Webpack中设置一个名为API_URL的环境变量,可以在代码中通过process.env.API_URL来访问它:

// webpack.config.js
module.exports = {
  plugins: [
    new webpack.DefinePlugin({
      'process.env.API_URL': JSON.stringify('https://api.example.com')
    })
  ]
}
 
// app.js
console.log(process.env.API_URL) // 'https://api.example.com'

import.meta.env是在ES模块中定义的全局变量,用于访问Vite构建的应用程序中的环境变量。在Vite中,可以在.env文件中定义环境变量,然后在Vue组件和JavaScript模块中通过import.meta.env来访问这些变量。

需要注意的是,process.envimport.meta.env的作用域不同,前者作用于整个Node.js进程,后者只作用于当前的JavaScript模块或Vue组件。因此,它们的用法和使用场景也有所不同。

总结

到此这篇关于vue开发者vite多环境配置的文章就介绍到这了,更多相关vue vite多环境配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue项目实现会议预约功能(包含某天的某个时间段和某月的某几天)

    vue项目实现会议预约功能(包含某天的某个时间段和某月的某几天)

    这篇文章主要介绍了vue项目实现会议预约功能(包含某天的某个时间段和某月的某几天),本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • 详解vue 模版组件的三种用法

    详解vue 模版组件的三种用法

    本篇文章主要介绍了详解vue 模版组件的三种用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Element-Ui组件 NavMenu 导航菜单的具体使用

    Element-Ui组件 NavMenu 导航菜单的具体使用

    这篇文章主要介绍了Element-Ui组件 NavMenu 导航菜单的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Vue子父组件之间传值的三种方法示例

    Vue子父组件之间传值的三种方法示例

    Vue的组件化给前端开发带来极大的便利,下面这篇文章主要给大家介绍了关于Vue子父组件之间传值的三种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • vue项目拍照或上传图片并实现转化为base64格式

    vue项目拍照或上传图片并实现转化为base64格式

    这篇文章主要介绍了vue项目拍照或上传图片并实现转化为base64格式方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • vue 通过 mqtt 实现实时接收消息的操作方法

    vue 通过 mqtt 实现实时接收消息的操作方法

    ‌MQTT是一种基于发布/订阅模式的轻量级消息协议,适用于硬件性能有限的远程设备和网络状况不佳的环境,这篇文章主要介绍了vue 通过 mqtt 实现实时接收消息,需要的朋友可以参考下
    2024-12-12
  • vue3+Typescript实现路由标签页和面包屑功能

    vue3+Typescript实现路由标签页和面包屑功能

    在使用 Vue.js 开发后台管理系统时,经常会遇到需要使用路由标签页的场景,这篇文章主要介绍了vue3+Typescript实现路由标签页和面包屑,需要的朋友可以参考下
    2023-05-05
  • vue3.0 CLI - 2.5 - 了解组件的三维

    vue3.0 CLI - 2.5 - 了解组件的三维

    通过本文带领大家去学习vue3.0 CLI - 2.5 - 了解组件的三维的相关知识,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-09-09
  • vue实现图片懒加载的方法分析

    vue实现图片懒加载的方法分析

    这篇文章主要介绍了vue实现图片懒加载的方法,结合实例形式分析了vue.js图片懒加载插件安装、使用方法与相关操作注意事项,需要的朋友可以参考下
    2020-02-02
  • vue中控制mock在开发环境使用,在生产环境禁用方式

    vue中控制mock在开发环境使用,在生产环境禁用方式

    这篇文章主要介绍了vue中控制mock在开发环境使用,在生产环境禁用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04

最新评论