如何在进程时间(而非浏览器运行时)获取/访问webpack ENV变量?html文件中的webpack.DefinePlugin(...)
似乎不起作用,我无法访问主index.html
中的ENV变量
有什么解决方案吗?
发布于 2017-02-15 09:38:18
您可以使用html-webpack-plugin。您必须使用.ejs或其他模板语言,然后像这样使用
new HtmlWebpackPlugin({
template: './src/public/index.ejs',
inject: 'body',
environment: process.env.NODE_ENV
}),
在index.ejs中
<body class="<%= htmlWebpackPlugin.options.environment %>">
发布于 2018-03-02 01:06:28
实际上,您还可以使用HtmlWebpackPlugin
在您的ejs模板中使用来自DefinePlugin
的变量。
EJS:
<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:
new webpack.DefinePlugin({
'process.env.GA_TRACKING_ID': JSON.stringify(process.env.GA_TRACKING_ID),
}),
(您不必使用process.env
,但如果未定义变量,它将防止您的应用程序崩溃。)
https://stackoverflow.com/questions/39902197
复制相似问题