vue-cli的index.html中使用环境变量方式

首先,为了使用vue-cli中的环境变量,我们需要在根目录下新建一个.env文件。在这个文件中,我们可以设置自定义的环境变量,并以VUE_APP_为前缀命名,例如:VUE_APP_BASE_API=http://localhost:3000。这样,在我们的项目中就可以使用process.env.VUE_APP_BASE_API调用这个环境变量了。

接下来,我们需要在index.html中使用这个环境变量。具体过程是在index.html文件中,使用%PUBLIC_URL%进行占位,并在JavaScript中替换这个占位符为我们定义的环境变量,代码实现如下:

<!-- index.html -->
<!DOCTYPE html>
<html>
  <head>
    <title>Vue App</title>
    <script>
      // 注意:这里的变量名一定要与.env中定义的变量名一致
      const BASE_API = '<%= process.env.VUE_APP_BASE_API %>';
    </script>
  </head>
  <body>
    <div id="app"></div>
    <script src="./dist/js/app.js"></script>
  </body>
</html>

注意,这里的占位符<%= process.env.VUE_APP_BASE_API %>使用的是ejs模板语法。

假设我们在.env文件中定义了一个环境变量VUE_APP_BASE_API=http://localhost:3000,那么上述代码中的BASE_API变量就会被替换为http://localhost:3000

除了上述的方式,我们还可以使用webpack的DefinePlugin插件来在JavaScript代码中直接访问这些环境变量,代码实现如下:

// webpack.config.js
const webpack = require('webpack')
const dotenv = require('dotenv')

// 加载根目录下的.env文件
const env = dotenv.config().parsed

// 用env的值替换process.env中的变量
const envKeys = Object.keys(env).reduce((prev, next) => {
  prev[`process.env.${next}`] = JSON.stringify(env[next])
  return prev
}, {})

module.exports = {
  // ...其他的配置
  plugins: [
    new webpack.DefinePlugin(envKeys)
  ]
}

在上述代码中,首先我们使用dotenv模块来加载根目录下的.env文件,并将其中的变量设置为环境变量。然后,我们使用webpack的DefinePlugin插件将这些环境变量注入到JavaScript代码中,使得我们可以在代码中直接访问它们,例如process.env.VUE_APP_BASE_API

使用这种方式,我们可以在任何JavaScript文件中都可以访问这些环境变量,而不需要在每个文件都手动引入占位符并替换它们。同时,以上方式也支持在vue组件中使用这些环境变量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-cli的index.html中使用环境变量方式 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Lua中字符串(string)浅析

    Lua中字符串(string)浅析 在Lua中,字符串(string)是一种基本数据类型,用于表示和处理文本数据。本文将对Lua中字符串的定义、常见操作、转义字符、长字符串等内容进行分析并结合示例进行说明。 字符串的定义 在Lua中,字符串字面量可以用引号(单引号或双引号)来表示,例如: local str1 = "hello, world&quo…

    other 2023年6月20日
    00
  • Java中的字符串常量池详细介绍

    Java中的字符串常量池详细介绍 在Java中,字符串常量池是一种特殊的内存区域,用于存储字符串常量。字符串常量池具有以下特点: 字符串常量池是在堆内存中的一部分,用于存储字符串常量。 字符串常量池中的字符串对象是不可变的,一旦创建就不能被修改。 字符串常量池中的字符串对象是共享的,多个引用可以指向同一个字符串对象。 字符串常量池的目的是提高性能和节省内存,…

    other 2023年10月15日
    00
  • 详解java中动态代理实现机制

    详解Java中动态代理实现机制 介绍动态代理 动态代理是一种在运行时生成代理对象的技术,它允许我们在调用目标对象的方法之前或之后插入自定义的逻辑。这种技术在Java中非常常见,被广泛应用于AOP(面向切面编程)和框架开发中。 实现动态代理的机制 Java中实现动态代理的机制主要依赖于两个核心类:Proxy和InvocationHandler。 1. Prox…

    other 2023年6月28日
    00
  • rapidjson使用总结

    RapidJSON使用总结 RapidJSON是一个快速的C++ JSON解析器/生成器,它提供了高效的内存管理和可扩展性。本文将介绍如何使用RapidJSON解析和生成JSON数据,包括创建JSON对象、字符串、数字和布尔值等。 步骤一:安装RapidJSON RapidJSON是一个开源库可以从其官方网站上下载最新版本的代码。下载后,将其包含在您的C++…

    other 2023年5月8日
    00
  • 抖音自定义背景穿越如何玩 抖音自定义背景穿越玩法分享

    抖音自定义背景穿越如何玩 简述 抖音自定义背景穿越是抖音应用程序中的一项功能,通过穿越功能可以将一个场景从一个背景穿越到另一个背景中。用户可以在自己的抖音作品中使用该功能,让自己的视频更加生动有趣。本文将为大家详细讲解如何玩抖音自定义背景穿越。 操作步骤 步骤1:选择适当的场景 在进行自定义背景穿越的时候,需要选择一个合适的场景,在合适的场景中,才能使背景穿…

    other 2023年6月25日
    00
  • CentOS7中KVM虚拟机内存、CPU调整

    CentOS7中KVM虚拟机内存、CPU调整 在CentOS 7中,通过KVM虚拟化平台可以创建多个虚拟机,并可以通过调整内存和CPU的分配来满足不同虚拟机的需求。本文将介绍如何在CentOS 7中使用KVM虚拟化平台对虚拟机的内存和CPU进行调整。 1. 确认KVM虚拟机内存及CPU 通过使用以下命令可以查看KVM虚拟机的内存及CPU的信息: # virs…

    其他 2023年3月28日
    00
  • Java中csv文件读写超详细分析

    Java中CSV文件读写超详细分析 什么是CSV文件? CSV文件是一种纯文本文件,它由逗号分隔的值组成(Comma Separated Values)。一个CSV文件通常由多行数据组成,每行数据包含多个字段,字段间使用逗号分隔,每行数据以回车换行符结束。 例如,以下是一个CSV文件的示例: 姓名,年龄,性别 张三,18,男 李四,20,女 王五,25,男 …

    other 2023年6月26日
    00
  • 魔兽世界7.3.5增强萨怎样输出 增强萨团本大秘境输出手法及技能循环

    魔兽世界增强萨输出攻略 1. 技能循环 增强萨是近战攻击职业,主要依靠奥术打击和风暴打击两个技能来输出伤害。以下是常用的技能循环: 狂暴之怒 (准备阶段) 巨人打击 (开场) 奥术打击 + 风暴打击(交替使用) 焚烧 + 元素掌握 + 闪电之盾 (用技能积攒能量) 巨人打击 + 奥术打击 + 风暴打击 重复以上步骤直到目标死亡 2. 属性和装备 增强萨主要依…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部