我想为使用 vue cli 3 创建的网页设置标题,因此查看了 public/index.html
。在那里,我找到了 <title><%= htmlWebpackPlugin.options.title %></title>
。
如何在 vue cli 3 项目中设置和修改 htmlWebpackPlugin.options.title
?
原文由 mayank1513 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想为使用 vue cli 3 创建的网页设置标题,因此查看了 public/index.html
。在那里,我找到了 <title><%= htmlWebpackPlugin.options.title %></title>
。
如何在 vue cli 3 项目中设置和修改 htmlWebpackPlugin.options.title
?
原文由 mayank1513 发布,翻译遵循 CC BY-SA 4.0 许可协议
在根目录下创建一个文件 vue.config.js
//vue.config.js
module.exports = {
chainWebpack: config => {
config
.plugin('html')
.tap(args => {
args[0].title = "My Vue App";
return args;
})
}
}
见 https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-plugin
原文由 Lucio M. Tato 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
鉴于问题的受欢迎程度,我决定添加一个带有参考的详尽答案,以使其更加真实和完整。我还创建 了一篇 关于这个主题的文章,并在 本 课程和 本 课程中涵盖了这个主题。
虽然问题是寻找设置
htmlWebpackPlugin.options.title
,但最终的效果是改变网页的标题。1.最方便和最简单的解决方案
最简单的方法是修改
public/index.html
并硬编码标题。这是默认的
public/index.html
由 vue cli 生成。而在这一点上,你只需要改变至
2.更改—中的
package.json
name
字段另一个简单的解决方案是更改
"name": "your-project-name"
。但是,您可以在 --- 中使用的package.json
name
很多限制。您可以 在此处 阅读有关此内容的更多信息。基本上,package.json
必须包含一个名称,并且必须是小写字母和一个单词,并且可以包含连字符和下划线。3.使用
pages
字段在vue.config.js
vue.config.js
是一个可选文件,您可以添加该文件以向 Vue CLI 提供其他配置,如果存在此文件,Vue CLI 将自动加载该文件。您需要在根文件夹中创建vue.config.js
- 包含您的文件夹package.json
文件。根据 Vue 文档,您可以使用 pages 字段来定义多页应用程序的入口点。但是,您也可以使用它来定义单页应用程序的标题。在根目录中创建
vue.config.js
并将pages
字段添加到您的导出中,如下所示:请注意,如果您已经在运行开发服务器,则只有在您停止并重新启动开发服务器时才会反映此更改。换句话说,这些更改不会被热重载。
4. 链接 Webpack
你可以在
vue.config.js
中 链接Webpack ,如下图请注意,与解决方案 3 类似,仅当您停止并重新启动开发服务器时才会反映此更改,以防您已经在运行开发服务器。换句话说,这些更改不会被热重载。
5. 使用 JavaScript 修改生命周期钩子中的标题
列表中的下一个解决方案是使用 JavaScript 修改标题。您可以在
mounted
根组件的生命周期挂钩中执行此操作,或者如果您希望为不同的路由提供不同的标题,您可以对每个路由加载的组件执行相同的操作。6. 使用 Vue 元
最后,您可以使用 Vue Meta 来管理 Vue 应用程序的所有元数据,包括标题。首先您需要将 Vue Meta 添加到您的项目中,然后使用
metaInfo
字段如下所示为您的页面或路由配置元数据。结论
前 4 个解决方案是更改标题的静态方法,换句话说,您不能在运行时使用这些方法更改标题。此外,所有这些都不是热重装的。最后两个选项使用 JavaScript 并且可以在运行时操作标题。