-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(nuxt): enable appManifest
by default
#23448
Conversation
Run & review this pull request in StackBlitz Codeflow. |
yes π― This is a great improvement |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
π―
Before making it public available, it would be nice if we add "nuxtManifestVersion": "1"
to the generated manifests/latest to make sure for forward compatibility. (we can omit and implicitly consider undefined as v1 but well that's less secure to distinguish from invalid JSON responses)
@pi0 Any reason you propose |
I initially wrote Update: Genric |
To explain a bit further, I don't want to call the version field If you are worried about the However, honestly I feel like we're over-engineering this as there is no nitro client manifest in existence at the moment, and it's not clear to me why it would conflict with the nuxt manifest if it did exist. (Presumably when/if nitro manifest is introduced we will be able to keep them separate as the nuxt manifest path is totally within nuxt's control.) |
For full context, the client build manifest integrating with route rules was always meant to be implemented in Nitro upstream. You decided to move it forward this way, and we agreed to make sure these will be forward-compatible (which addition of a single field is not IMO constant with this vision) For a truly universal build manifest, it needs to be extendable. It means it is not dedicated to Nitro or even Nuxt (modules, integrations, and providers like edgio client might need to extend it as well). And because of this, the contents of this file shall be multi-versioned when versioning matters, also namespace when there are framework specific features to avoid conflicts. We can use a version field such as The fact that this file is generated today in As also explained before also At this point, i think for sake of Nuxt<>Nitro compatibility, i will move faster forward to implement upstream feature which is not really hard but also ask to not introduce |
Sounds good to me! We also have a bit of time before v3.8 release so can potentially refactor before then if we have a new nitro feature to play with. schema{
"type": "object",
"definitions": {
"MatcherExport": {
"type": "object",
"properties": {
"dynamic": {
"type": "object",
"patternProperties": {
".*": {
"$ref": "#/definitions/MatcherExport"
}
}
},
"wildcard": {
"type": "object",
"patternProperties": {
".*": {
"type": "object",
"properties": {
"pattern": {
"type": "string"
}
},
"required": [
"pattern"
]
}
}
},
"static": {
"type": "object",
"patternProperties": {
".*": {
"type": "object",
"properties": {
"pattern": {
"type": "string"
}
},
"required": [
"pattern"
]
}
}
}
},
"required": [
"dynamic",
"wildcard",
"static"
]
}
},
"properties": {
"version": {
"type": "number"
},
"id": {
"type": "string"
},
"timestamp": {
"type": "number"
},
"matcher": {
"$ref": "#/definitions/MatcherExport"
},
"prerendered": {
"type": "array",
"items": {
"type": "string"
}
}
}
} |
π Linked issue
#21641
β Type of change
π Description
This follows up on #21641 to enable app manifests and client-side routeRules by default. This can be disabled by setting
experimental.appManifest
to false.π Checklist