在create-react-app项目中能否从应用内部更新manifest.json文件?
核心结论
- 你无法通过前端运行时代码修改
public/manifest.json的实际内容 - 你提到的
icons字段修改不符合Web App Manifest官方规范,不建议这么操作
1. 关于manifest.json的修改权限说明
public 文件夹下的所有文件都是静态资源,在你执行 npm run build 构建项目时,就已经被打包为固定的静态文件部署到服务器了。用户浏览器中运行的React代码只有读取这些静态资源的权限,没有修改服务器上源文件的权限,这个限制和文件是否在src文件夹下没有关系。
如果你是想在构建阶段动态生成自定义的manifest.json,是可以实现的:你可以写一个Node.js脚本在构建启动前自动修改public目录下的manifest内容,也可以通过 react-app-rewired 等工具重写CRA的构建配置,在打包环节动态生成你需要的manifest内容。
2. 你提到的icons字段修改方案不适用
Web App Manifest的icons字段是浏览器用来识别PWA应用图标用的,官方规范明确要求每个icon项必须包含src、sizes、type三个核心字段,你修改为自定义的firstName、lastName之类的字段浏览器完全不会识别,也不会产生任何实际作用。如果你只是需要存储自定义的动态数据,完全没必要修改manifest,存到localStorage、IndexedDB或者后端接口中才是合理的方案。
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

