我使用 Webpack 和插件html-webpack-plugin
。基于环境变量,我想将<meta></meta>
标签注入到最终index.html
文件中。
我该怎么做呢?
我使用 Webpack 和插件html-webpack-plugin
。基于环境变量,我想将<meta></meta>
标签注入到最终index.html
文件中。
我该怎么做呢?
您可以定义自己的模板。在编写您自己的模板中简要提到了您可以将任何您想要的选项传递给它并在模板中使用它们htmlWebpackPlugin.options
:
htmlWebpackPlugin.options
:传递给插件的选项哈希。除了此插件实际使用的选项外,您还可以使用此哈希将任意数据传递到您的模板。
例如,您可以使用环境变量定义作者并向插件AUTHOR
添加一个author
选项:
new HtmlWebpackPlugin({
template: 'template.ejs',
author: process.env.AUTHOR
})
在您的template.ejs
中,您可以使用该信息创建<meta>
标签:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<% if (htmlWebpackPlugin.options.author) { %>
<meta name="author" content="<%= htmlWebpackPlugin.options.author %>">
<% } %>
</head>
<body>
</body>
</html>
您可以改用.html
文件,插件将回退到ejs-loader
,但如果您已html-loader
配置.html
文件,它将使用该文件而不是回退,因此嵌入将不起作用。
设置时AUTHOR
它将包含作者的元标记,否则不包含。跑步:
AUTHOR='Foo Bar' webpack
将包括以下元标记:
<meta name="author" content="Foo Bar">
new HtmlWebpackPlugin({
template: 'index.html',
meta: {
author: process.env.AUTHOR
}
});
导致在您的 head 标签中包含以下内容。
<meta name="author" content="Foo Bar">
new HtmlWebpackTagsPlugin({
metas: [{
path: 'img/logo.png',
attributes: {
property: 'og:image'
}
},{
attributes: {
property: 'og:image:type',
content: "image/png"
}
},{
attributes: {
property: 'og:image:width',
content: "200"
}
},{
attributes: {
property: 'og:image:height',
content: "200"
}
},]
}),
在@Will 之后,除了名称/内容元标记之外,该值还可以是一个对象。对象的键/值将分配给元标记。
new HtmlWebpackPlugin({
template: 'index.html',
meta: {
someName: {
httpEquiv: 'Content-Language',
content: 'en_US'
},
anotherName: {
key: 'description',
content: 'description goes here'
}
}
})
<meta key="description" content="description goes here">
<meta httpEquiv="Content-Language" content="en_US">