mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-10 10:06:15 -08:00
`website:lint` failed on master since the per-OS download pages landed:
`src/lib/downloads.ts` imported the workspace root `package.json` through a
relative path, which `@nx/enforce-module-boundaries` rejects ("external
resources cannot be imported using a relative or absolute path").
The value is only needed as a build-time constant for the offline fallback,
so `astro.config.mjs` now reads the root manifest through the file system
and injects `__IPTVNATOR_VERSION__` via Vite `define`; `downloads.ts` uses
that constant and `src/env.d.ts` declares its type. Verified with
`WEBSITE_SKIP_RELEASE_FETCH=1`: the built download pages link the
`iptvnator-<version>` assets and no define literal leaks into the output.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
// @ts-check
|
|
import { readFileSync } from 'node:fs';
|
|
import { defineConfig } from 'astro/config';
|
|
import sitemap from '@astrojs/sitemap';
|
|
import mdx from '@astrojs/mdx';
|
|
|
|
/**
|
|
* Repository version for the download pages' offline fallback
|
|
* (`src/lib/downloads.ts`). Read from the workspace root through the file
|
|
* system and injected as a build-time constant: importing the root
|
|
* `package.json` from inside the project trips the Nx module-boundaries rule
|
|
* ("external resources cannot be imported using a relative path"), and a
|
|
* value fixed at build time is what the fallback needs anyway.
|
|
*/
|
|
const { version } = JSON.parse(
|
|
readFileSync(new URL('../../package.json', import.meta.url), 'utf8'),
|
|
);
|
|
|
|
// Tailwind (v3) is applied via apps/website/postcss.config.mjs — the
|
|
// @astrojs/tailwind integration only supports Astro <= 5.
|
|
// https://astro.build/config
|
|
export default defineConfig({
|
|
site: 'https://4gray.github.io',
|
|
base: '/iptvnator',
|
|
outDir: '../../dist/apps/website',
|
|
integrations: [sitemap(), mdx()],
|
|
vite: {
|
|
define: {
|
|
__IPTVNATOR_VERSION__: JSON.stringify(version),
|
|
},
|
|
},
|
|
});
|