首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在html中传递webpack环境变量?

如何在html中传递webpack环境变量?
EN

Stack Overflow用户
提问于 2016-10-07 01:25:59
回答 2查看 21.9K关注 0票数 32

如何在进程时间(而非浏览器运行时)获取/访问webpack ENV变量?html文件中的webpack.DefinePlugin(...)似乎不起作用,我无法访问主index.html中的ENV变量

有什么解决方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-15 09:38:18

您可以使用html-webpack-plugin。您必须使用.ejs或其他模板语言,然后像这样使用

代码语言:javascript
复制
new HtmlWebpackPlugin({
        template: './src/public/index.ejs',
        inject: 'body',
        environment: process.env.NODE_ENV
    }),

在index.ejs中

代码语言:javascript
复制
<body class="<%= htmlWebpackPlugin.options.environment %>">
票数 43
EN

Stack Overflow用户

发布于 2018-03-02 01:06:28

实际上,您还可以使用HtmlWebpackPlugin在您的ejs模板中使用来自DefinePlugin的变量。

EJS:

代码语言:javascript
复制
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= process.env.GA_TRACKING_ID %>"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', '<%= process.env.GA_TRACKING_ID %>');
</script>

webpack.config.js:

代码语言:javascript
复制
new webpack.DefinePlugin({
  'process.env.GA_TRACKING_ID': JSON.stringify(process.env.GA_TRACKING_ID),
}),

(您不必使用process.env,但如果未定义变量,它将防止您的应用程序崩溃。)

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39902197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档