vue js 如何在 index.html 中使用“process.env”变量

问题描述 投票:0回答:4

我正在尝试在我的 html 标记中使用 env 变量来根据我是处于生产模式还是开发模式来更改 env 变量。因此对于使用 mixpanel 的上下文,我有两个项目,一个用于开发,一个用于使用不同 api 密钥的生产。我将如何使用 webpack 来执行此操作,在我的 html 中访问我的 process.env.VUE_APP_MIXPANEL env 变量?

vue.js webpack vue-cli
4个回答
20
投票

如果您使用默认的 Webpack 模板,您可以使用以下语法(例如)访问 index.html 中的 .env 变量:

<html>
  <head>
    <title><%= VUE_APP_TITLE %></title>
  </head>
  <body>
    ...
  </body>
</html>

显然你需要有一个像这样的变量

VUE_APP_TITLE=My title

在你的 .env 文件中


3
投票

使用 Google reCAPTCHA,我的脚本是这样的:

<script src="https://www.google.com/recaptcha/api.js?render=<%= process.env.VUE_APP_RECAPTCHA_SITE_KEY %>"></script>

环境变量是

VUE_RECAPTCHA_SITE_KEY
。它可能存在于
.env
文件中。


0
投票

为了回答我自己的问题,然后我遇到了这个包,它允许我将谷歌分析添加到您的 vue 项目中。https://github.com/MatteoGabriele/vue-analyticshttps://github com/Glovo/vue-multianalytics 如果您还想添加其他跟踪提供商。


0
投票

在 index.html 中使用

.env
作为 HTML 你可以使用这个:

<link
  rel="icon"
  type="image/ico"
  href="<%= process.env.FAVICON_ICO_URL %>"
/>

或者这个:

<title><%= process.env.SITE_TITLE %></title>

当使用

.env
变量注入到 index.html 的标签中时,您需要像这样将它们用作字符串:

<!-- Google Tag Manager -->
<script>
  (function (w, d, s, l, i) {
    w[l] = w[l] || [];
    w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
    var f = d.getElementsByTagName(s)[0],
      j = d.createElement(s),
      dl = l != 'dataLayer' ? '&l=' + l : '';
    j.async = true;
    j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
    f.parentNode.insertBefore(j, f);
  })(
    window,
    document,
    'script',
    'dataLayer',
    '<%= process.env.GTM_CONTAINER_ID %>'
  );
</script>
<!-- End Google Tag Manager -->
© www.soinside.com 2019 - 2024. All rights reserved.