microsoft / microsoft/TypeScript

TS does not support resolving paths with colons

Abierto
#57,529 8 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Bug Domain: Module Resolution Help Wanted
Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

🔎 Search Terms

https://github.com/microsoft/TypeScript/issues?q=is%3Aissue+colon+exports+is%3Aclosed

colon, exports

🕗 Version & Regression Information
  • This is the behavior in every version I tried
⏯ Playground Link

https://stackblitz.com/edit/stackblitz-starters-d2rfdx?description=Starter%20project%20for%20Node.js,%20a%20JavaScript%20runtime%20built%20on%20Chrome%27s%20V8%20JavaScript%20engine&file=package.json&title=node.new%20Starter

💻 Code

Consumer module:

import a from 'my-library';
import b from 'my-library/foo';
import c from 'my-library/foo:virtual';
import d from 'my-library/bar';
import e from 'my-library/colon:here';

console.log({ a, b, c, d, e });

package.json for my-library:

{
  "name": "my-library",
  "version": "0.0.1",
  "type": "module",
  "exports": {
    ".": {
      "types": "./foo.d.ts",
      "default": "./foo.js"
    },
    "./foo": {
      "types": "./foo.d.ts",
      "import": "./foo.js"
    },
    "./foo:virtual": {
      "types": "./foo.d.ts",
      "default": "./foo.js"
    },
    "./*": {
      "types": "./*.d.ts",
      "default": "./*.js"
    }
  },
  "scripts": {
    "lint": "attw --pack; pnpm publint"
  },
  "dependencies": {
    "@arethetypeswrong/cli": "^0.14.1",
    "publint": "^0.2.7"
  }
}

every imported module is supposed to resolve, and then print:

{ a: 2, b: 2, c: 2, d: 2, e: 'two' }

(pnpm start in the consumer package in the repro link shows this)

🙁 Actual behavior

Errors, cannot find module
image

🙂 Expected behavior

align with JS, resolve the module

Additional information about the issue

No response

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el repro de StackBlitz y el pnpm start del paquete consumidor; después inspecciona las entradas de exports de package.json mostradas que contienen dos puntos. Sigue el comportamiento de la resolución de módulos de TypeScript para estos subpaths del paquete y compáralo con el resultado del runtime de JavaScript. Se considera terminado cuando los cinco imports se resuelvan y produzcan la salida esperada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript, typescript
Área
compilers
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.