为 Web 站点优雅的生成 Manifest 文件

2024-04-23 00:20

本文主要是介绍为 Web 站点优雅的生成 Manifest 文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为 Web 站点优雅的生成 Manifest 文件

mainfest.json

manifest.json 文件通常包含有关 Web 应用程序的元数据信息,这些信息会影响到浏览器如何展示和处理这个应用程序。常见的信息包括:

  • name:应用程序的名称。
  • short_name:应用程序的简短名称,通常用于手机屏幕上的应用程序图标。
  • start_url:应用程序启动时加载的 URL。
  • display:定义应用程序的显示模式,如 “fullscreen”、“standalone”、“minimal-ui” 等。
  • background_color:应用程序启动时的背景颜色。
  • theme_color:应用程序的主题颜色,影响浏览器工具栏、状态栏等。
  • icons:包含各种尺寸的图标,用于不同的设备和分辨率。
  • scope:应用程序的范围,指定了应用程序可以控制的 URL 范围。
  • description:应用程序的描述信息。
  • categories:应用程序所属的分类,用于 App Stores 等。
  • lang:应用程序使用的语言。
  • orientation:应用程序的方向,如 “landscape” 或 “portrait”。
  • prefer_related_applications:指示是否更喜欢用户使用相关的本机应用程序,而不是 Web 应用程序。
  • related_applications:如果应用程序有相关的本机应用程序,则提供相关应用程序的信息。

利用 Webpack 的特性生成文件

Webpack 编译完成阶段,生成一个 manifest.json 文件

class MakeManifestPlugin {constructor(options) {this.opts = options}apply (compiler) {const _this = this// webpack4if (compiler.plugin) {// 完成输出事件compiler.plugin('after-emit', function (compilation, done) {_this.generateVersion()done()})return}// webpack5compiler.hooks.compile.tap('MakeManifestPlugin', (compilation) => {_this.generateVersion()})}generateVersion () {fs.writeFile('public/manifest.json', JSON.stringify(this.opts), function (err) {if (err) {return err}})}
}

使用插件

{configureWebpack: (config) => {if (process.env.NODE_ENV === 'production') {config.plugins.push(new GenerateVersionPlugin({version,isOpenVersion}))}}
}

使用 manifest.json 做什么

提醒用户刷新浏览器

现在有了版本号信息,就可以主动判断是否需要最新的资源了。当版本号发生变换时,页面提醒用户有新版本发布,请刷新浏览器。

优化缓存文件

通常针对为了获取最新鲜的静态资源,会有如下写法:

const now = new Date().getTime()const url = `https://www.unpkg.com/browse/react@16.7.0/index.js?t=${now}`

不是所有的静态都需要时刻最新,合理运用缓存。当版本发生变化时,再拿最新的资源。

const url = `https://www.unpkg.com/browse/react@16.7.0/index.js?v=${version}`

这篇关于为 Web 站点优雅的生成 Manifest 文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/927271

相关文章

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到