我想在我的HTML标记中使用环境变量来根据我是处于生产模式还是开发模式来更改环境变量。因此,为了上下文的考虑,我有两个Mixpanel项目,一个用于开发,另一个用于生产,具有不同的API密钥。我应该如何使用Webpack来做到这一点,在我的HTML中访问process.env.VUE_APP_MIXPANEL环境变量?
如果您使用默认的Webpack模板,则可以使用此语法(例如)在index.html中访问.env变量:
<html>
<head>
<title><%= VUE_APP_TITLE %></title>
</head>
<body>
...
</body>
</html>
显然,你需要像这样拥有一个变量
VUE_APP_TITLE=My title
在你的 .env 文件中/.env
属性。 - A-Diddy<script src="https://www.google.com/recaptcha/api.js?render=<%= process.env.VUE_APP_RECAPTCHA_SITE_KEY %>"></script>
环境变量是VUE_RECAPTCHA_SITE_KEY
。它可能存在于.env
文件中。
.env.production
中的变量吗? - timbmg当在 index.html 中使用 .env
作为 HTML 时,您可以使用以下内容:
<link
rel="icon"
type="image/ico"
href="<%= process.env.FAVICON_ICO_URL %>"
/>
或者这样:
<title><%= process.env.SITE_TITLE %></title>
当使用注入到 index.html 标签的 .env
变量时,需要像这样将它们作为字符串使用:
<!-- 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 -->
vue-cli-service serve --open
。所以如果我没记错的话,在HTML脚本标签中不能使用process.env。 - okandas