build: tsdown vendor alias uses URL.pathname, which breaks pnpm build on Windows

Fechada Para iniciantes
#3,353 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
88/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
node.js, typescript
Domínio
build-system

Direção de pesquisa

A falha está na expressão .pathname em tsdown.config.ts, onde o alias de vendor para '@limrun/xdelta3-wasm' é construído a partir de new URL(..., import.meta.url).pathname. Substitua-a por fileURLToPath de node:url, como sugere a issue. Está concluído quando pnpm build termina no Windows e o alias resolve para src/vendor/limrun-delta-sync-omitted.ts.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Problem

pnpm build fails on a Windows host:

Could not resolve '@limrun/xdelta3-wasm' ... Matched alias not found

tsdown.config.ts builds the vendor-alias target with new URL(..., import.meta.url).pathname, which yields a POSIX-shaped path on Windows:

'@limrun/xdelta3-wasm': new URL('./src/vendor/limrun-delta-sync-omitted.ts', import.meta.url)
  .pathname,

For file:///C:/.../src/vendor/limrun-delta-sync-omitted.ts, .pathname returns /C:/.../src/vendor/limrun-delta-sync-omitted.ts — a path with a leading slash before the drive letter, which no resolver can match.

Scope

Build-time only, for someone building from source on Windows. It does not affect running a published package, since releases are built on the Linux lanes.

Pre-existing, not introduced by any currently open PR. Present on main and on a7821ef58 (fix/windows-daemon-start-3291), whose diff does not touch tsdown.config.ts. Last change to the file: 0c1ebb33a, feat(provider-webdriver): add TestMu AI device cloud provider (#3118).

Fix

Use fileURLToPath from node:url:

import { fileURLToPath } from 'node:url';

'@limrun/xdelta3-wasm': fileURLToPath(new URL('./src/vendor/limrun-delta-sync-omitted.ts', import.meta.url)),

The reporter confirmed the build completes with that change, and ran the full native Windows checklist on top of it.

Found by

pai-scaffolde while building this head natively on Windows 11 — evidence at https://github.com/callstack/agent-device/pull/3330#issuecomment-6084583110. They offered to open a PR for it.

Linguagem predominante
TypeScript
Estrelas
5.2k
Forks
359
Merge médio
13h 31min
PRs com merge (30d)
664

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de callstack/agent-device

Todas as issues de callstack/agent-device

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.