diff options
author | Chris Swithinbank | 2023-07-14 14:27:56 +0200 |
---|---|---|
committer | GitHub | 2023-07-14 14:27:56 +0200 |
commit | 757c65ffc468fd2c782312b476fa7659d0cfd198 (patch) | |
tree | 4c49163457b48649fb79547dfc56f2c99e724b3e | |
parent | 48242db9cf8713d8f85e2002457a19dfbf3f295c (diff) | |
download | IT.starlight-757c65ffc468fd2c782312b476fa7659d0cfd198.tar.gz IT.starlight-757c65ffc468fd2c782312b476fa7659d0cfd198.tar.bz2 IT.starlight-757c65ffc468fd2c782312b476fa7659d0cfd198.zip |
Fix relative path resolution on Windows (#335)
* Use Vite hack to resolve user config paths
* Add changeset
* Switch to `JSON.stringify` strategy
* Remove old changeset
-rw-r--r-- | .changeset/fluffy-lions-yell.md (renamed from .changeset/friendly-lobsters-share.md) | 0 | ||||
-rw-r--r-- | packages/starlight/index.ts | 10 |
2 files changed, 5 insertions, 5 deletions
diff --git a/.changeset/friendly-lobsters-share.md b/.changeset/fluffy-lions-yell.md index 6b02e4f8..6b02e4f8 100644 --- a/.changeset/friendly-lobsters-share.md +++ b/.changeset/fluffy-lions-yell.md diff --git a/packages/starlight/index.ts b/packages/starlight/index.ts index a1e68e20..8a46b29f 100644 --- a/packages/starlight/index.ts +++ b/packages/starlight/index.ts @@ -6,7 +6,7 @@ import type { ViteUserConfig, } from 'astro'; import { spawn } from 'node:child_process'; -import { dirname, relative } from 'node:path'; +import { dirname, relative, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; import { starlightAsides } from './integrations/asides'; import { starlightSitemap } from './integrations/sitemap'; @@ -89,19 +89,19 @@ function vitePluginStarlightUserConfig( { root }: AstroConfig ): NonNullable<ViteUserConfig['plugins']>[number] { const resolveRelativeId = (id: string) => - id.startsWith('.') ? fileURLToPath(new URL(id, root)) : id; + id.startsWith('.') ? JSON.stringify(resolve(fileURLToPath(root), id)) : id; const modules = { 'virtual:starlight/user-config': `export default ${JSON.stringify(opts)}`, 'virtual:starlight/project-context': `export default ${JSON.stringify({ root, })}`, 'virtual:starlight/user-css': opts.customCss - .map((id) => `import "${resolveRelativeId(id)}";`) + .map((id) => `import ${resolveRelativeId(id)};`) .join(''), 'virtual:starlight/user-images': opts.logo ? 'src' in opts.logo - ? `import src from "${resolveRelativeId(opts.logo.src)}"; export const logos = { dark: src, light: src };` - : `import dark from "${resolveRelativeId(opts.logo.dark)}"; import light from "${resolveRelativeId(opts.logo.light)}"; export const logos = { dark, light };` + ? `import src from ${resolveRelativeId(opts.logo.src)}; export const logos = { dark: src, light: src };` + : `import dark from ${resolveRelativeId(opts.logo.dark)}; import light from ${resolveRelativeId(opts.logo.light)}; export const logos = { dark, light };` : 'export const logos = {};', }; const resolutionMap = Object.fromEntries( |