Date sitemap lastmod from the build pipeline; warn on skipped pages
- bunext build records when each page's client bundle hash last changed
in .bunext/page-lastmod.json (sitemap.lastmod_file to relocate). The
hash covers the page's whole import graph, so component edits re-date
every page that uses them. The sitemap uses these dates as lastmod
- Add sitemap.default_lastmod
- BREAKING: use_file_lastmod now defaults to false (file mtimes are reset
by checkouts); it is a fallback after the build record
- Warn when a page or __root.tsx is skipped because its default export
is not at the start of a line (e.g. export { Page as default })
- Replace leaking module mocks in tests (log, grab-root-file-path) with
spies and fixtures
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Vendored
+25
-2
@@ -438,10 +438,21 @@ export type BunextGenerateSitemapParams = {
|
||||
*/
|
||||
additional_paths?: BunextSitemapAdditionalPaths | (() => BunextSitemapAdditionalPaths | Promise<BunextSitemapAdditionalPaths>);
|
||||
/**
|
||||
* Use each page file's modification time as `lastmod`. Defaults to
|
||||
* `true`.
|
||||
* Fall back to each page file's modification time as `lastmod` when
|
||||
* the build record has no date for it. Defaults to `false`: checkouts
|
||||
* reset modification times, so they are rarely meaningful.
|
||||
*/
|
||||
use_file_lastmod?: boolean;
|
||||
/**
|
||||
* `lastmod` for entries that have no other date
|
||||
*/
|
||||
default_lastmod?: Date | string;
|
||||
/**
|
||||
* Page last-modified record written by `bunext build`, relative to the
|
||||
* project root. Defaults to `.bunext/page-lastmod.json`. Point it at a
|
||||
* cached or committed location when builds start from a fresh checkout.
|
||||
*/
|
||||
lastmod_file?: string;
|
||||
/**
|
||||
* Append a trailing slash to every non-root path. Defaults to `false`.
|
||||
*/
|
||||
@@ -508,3 +519,15 @@ export type BunextRobotsConfig = BunextGenerateRobotsTxtParams & {
|
||||
*/
|
||||
output?: string;
|
||||
};
|
||||
/**
|
||||
* Written by `bunext build`. Keyed by page path relative to the project
|
||||
* root. `lastmod` is the build date at which `fingerprint` last changed.
|
||||
*/
|
||||
export type BunextPageLastmodRecord = {
|
||||
pages: {
|
||||
[local_path: string]: {
|
||||
fingerprint: string;
|
||||
lastmod: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user