mirror of
https://github.com/hanzoai/hips.git
synced 2026-10-30 15:04:16 +00:00
The lockfile had drifted from the manifest on twenty-two specifiers, so pnpm install --frozen-lockfile refused on a clean checkout. A lockfile that disagrees with its manifest is not a lockfile — it is a second, contradictory manifest, and CI trusts neither. Refreshing it exposed what the drift had been hiding. The manifest asked for @hanzo/docs 17.0.4; the lockfile was still resolving 16.2.7, so nobody had built against 17. In 17 the stylesheet global.css imports moved out of the package — no version of @hanzo/docs after 16.3.0 exports ./ui/style.css — and the user interface moved onto @hanzo/gui, which reaches its icons through react-native. A static export cannot follow it there: the browser bundle ends up parsing Flow source, and react-native-web 0.21 no longer publishes the AssetRegistry that react-native-svg's web build calls. That is a migration, with its own resolution apparatus, not a lockfile repair. So the manifest names 16.2.9 — the newest release that is both installable and still exports the sheet this app imports. 16.3.0 is not a candidate: it was published with workspace:* protocol left in its dependencies and cannot be installed at all. Two things the refresh moved uncovered: lucide-react is fixed at one version. pnpm keys a package directory by its peer set, so @hanzo/docs-core arrived twice — once under lucide 0.562, once under 1.40 — and two directories are two module registries. layout.tsx filled the framework context in one while DocsLayout read the other, and every page failed to prerender with "You need to wrap your application inside FrameworkProvider". One version, one copy, one context. Turbopack is told where the root is. lib/status.ts reads ../../vocabulary.json, the same file scripts/index.py reads, and Turbopack takes its root from the nearest package.json — docs/ — so the repo root sat outside the graph. Co-authored-by: Hanzo Dev <[email protected]>
22 lines
596 B
JavaScript
22 lines
596 B
JavaScript
import path from 'node:path';
|
|
|
|
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
output: 'export',
|
|
trailingSlash: true,
|
|
images: {
|
|
unoptimized: true,
|
|
},
|
|
productionBrowserSourceMaps: false,
|
|
|
|
turbopack: {
|
|
// The repo root, not docs/. lib/status.ts reads ../../vocabulary.json — the
|
|
// same file scripts/index.py reads — and Turbopack takes its root from the
|
|
// nearest package.json, which is docs/. Anything above that sits outside
|
|
// the graph and does not resolve.
|
|
root: path.join(import.meta.dirname, '..'),
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|